Sidekiq:NoMethodError:未定义的方法`perform'

时间:2014-07-20 21:27:42

标签: ruby-on-rails ruby-on-rails-4 redis sidekiq

以下是我要做的事情:

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

4 个答案:

答案 0 :(得分:0)

工人没有命名要求。你可以这样做:

class Foo
  include Sidekiq::Worker
  def perform; end
end

我怀疑你只需要重新启动Rails / Spring / Zeus来接收新类。

答案 1 :(得分:0)

如何重新启动在后台运行的heroku dyno?

heroku run:detached bundle exec sidekiq -e production

以下命令会强制sidekiq获取新类吗?

heroku ps:stop run

heroku run:detached bundle exec sidekiq -e production

答案 2 :(得分:0)

在sidekiq(4和5)的当前版本中,我认为解决方案是调用perform_async而不执行。

答案 3 :(得分:-2)

您应该将文件重命名为update_style_rank_worker.rb
和UpdateStyleRankWorker的类名