我在我的Rails应用程序中使用Sidekiq,并且有大约30名工人以随机顺序启动,具体取决于用户在Rails应用程序中单击的任务。有时,sidekiq作业失败,我将不得不关闭sidekiq并手动调查错误,从而中断所有工作程序(由该用户和任何其他用户发起)
我刚刚实现了一个中间件,以便每次sidekiq作业失败时都可以最终调用一个方法。但是,现在我想知道是否有办法可以在另一个队列中重新运行该作业(比如说“ retry_queue”)。
现在,我的sidekiq工人开始像这样:
class TestingWorker
include Sidekiq::Worker
sidekiq_options queue: Rails.env.to_sym
这基本上使用环境正在运行的任何队列(例如,开发或生产)。但是,在这种设置或任何其他设置下,我不确定如何实现我的目标。
所以我的问题是:
理想情况下,如果我能以某种方式更改此设置:
sidekiq_options queue: Rails.env.to_sym
像这样:
sidekiq_options queue: [something here].include? "retry_queue" ? :retry_queue : Rails.env.to_sym
任何想法或建议,将不胜感激。
然后,所有重试均失败的作业将进入失效集和Web UI中的“失效”选项卡。请参阅错误处理维基页面。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句