Sidekiq: NoMethodError: неопределенный метод `execute '

Вот что я пытаюсь сделать:

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 ответа

Решение

Для работников не требуется никаких имен. Вы можете сделать это:

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

Я подозреваю, что вам просто нужно перезапустить Rails/Spring/Zeus, чтобы подобрать новый класс.

В текущих версиях sidekiq (4 и 5) я считаю, что решение состоит в том, чтобы вызывать execute_async, а не выполнять.

Как можно было бы перезапустить "Герою Дино" в фоновом режиме?

heroku run:detached bundle exec sidekiq -e production

Могут ли следующие команды заставить sidekiq поднять новый класс?

heroku ps:stop run

heroku run:detached bundle exec sidekiq -e production

Вам следует переименовать файл в update_style_rank_worker.rb
и имя класса для UpdateStyleRankWorker

Другие вопросы по тегам