Del*_*ang 4 ruby-on-rails 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
Run Code Online (Sandbox Code Playgroud)
我的控制器只是
BotWorker.perform_async(user_id)
Run Code Online (Sandbox Code Playgroud)
但是,在Sidekiq仪表板上,似乎没有计划另一名工人.
还要注意,重复是有条件的,所以我似乎不能使用sidetiq或一些sidekiq调度扩展.
Sidekiq还是新手,请阅读文档.我错过了什么?
奇怪.我做同样的事情,除了使用self.class而不是BotWorker它的工作.我对我的perform方法没有任何论据.
您可能希望将方法包装在begin/rescue/ensure块中,并将重新排队移动到ensure块中.
如果User.find找不到用户,它将引发Sidekiq将捕获的错误,并应将您的作业移动到重试队列中.可能不是你想要的.
| 归档时间: |
|
| 查看次数: |
1860 次 |
| 最近记录: |