Я использую Sidekiq с Rails 3, со следующим классом рабочих:Sidekiq график же работника в очереди, когда сделано
class BotWorker
include Sidekiq::Worker
def perform(user_id)
user = User.find(user_id)
puts user.email
if condition # always true for now
BotWorker.perform_in(1.hour, user_id) # not working
end
end
end
Мой контроллер просто имеет
BotWorker.perform_async(user_id)
Однако, на приборной панели Sidekiq, не похоже, что запланирован другой рабочий.
Также хотел бы отметить, что повторение является условным, поэтому не похоже, что я могу использовать sidetiq или какое-то расширение для sidekiq scheduling.
Еще новичок в Sidekiq, прочтите документацию. Что мне не хватает?
Спасибо за это. Наконец, он получил работу, оказывается, мне пришлось перезапустить «sidekiq». Спасибо –
Быстрый вопрос. Вы упомянули перемещение запроса в блок обеспечения. Но разве это не означает, что если User.find не работает, он будет повторять попытку? Я бы хотел, чтобы Sidekiq не повторялся, если User.find терпит неудачу. –
@DelosChang Да, это было бы. Извините, если это не ваше намерение, не кладите его туда! Но вы все равно захотите поймать какие-либо ошибки, поэтому Sidekiq не нападет и не повторит попытку для вас. –