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