【问题标题】:Sidekiq: NoMethodError: undefined method `perform'Sidekiq:NoMethodError:未定义的方法“执行”
【发布时间】:2014-09-11 08:48:15
【问题描述】:
这是我想要做的:
2.1.2 :001 > UpdateStyleRanks.perform_async
这是错误:
NoMethodError: undefined method `perform' for #<UpdateStyleRanks:0x00000002f5e388>
这是我的工人:
# app/workers/update_style_ranks.rb
class UpdateStyleRanks
include Sidekiq::Worker
def perform
end
end
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-4
redis
sidekiq
【解决方案1】:
在当前版本的 sidekiq(4 和 5)中,我认为解决方案是调用 perform_async 而不是执行。
【解决方案2】:
如何重新启动在后台运行的 heroku dyno?
heroku run:detached bundle exec sidekiq -e production
以下命令会强制 sidekiq 选择新课程吗?
heroku ps:stop run
heroku run:detached bundle exec sidekiq -e production
【解决方案3】:
对工作人员没有命名要求。你可以这样做:
class Foo
include Sidekiq::Worker
def perform; end
end
我怀疑你只需要重新启动 Rails/Spring/Zeus 来学习新课程。
【解决方案4】:
您应该将文件重命名为 update_style_rank_worker.rb
以及 UpdateStyleRankWorker 的类名