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 endend
我的控制器只是
BotWorker.perform_async(user_ID)
但是,在SIDekiq仪表板上,似乎没有计划另一名工人.
还要注意,重复是有条件的,所以我似乎不能使用sIDetiq或一些sIDekiq调度扩展.
SIDekiq还是新手,请阅读文档.我错过了什么?
解决方法 奇怪.我做同样的事情,除了使用self.class而不是BotWorker,它的工作原理.虽然我的执行方法没有任何参数.您可能希望将方法包装在begin / rescue / ensure块中,并将重新排队移动到ensure块中.
如果User.find无法找到用户,它将引发SIDekiq将捕获的错误,并应将您的作业移动到重试队列中.可能不是你想要的.
总结以上是内存溢出为你收集整理的ruby-on-rails – Sidekiq在完成后安排同一个工作人员排队全部内容,希望文章能够帮你解决ruby-on-rails – Sidekiq在完成后安排同一个工作人员排队所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)