繁体   English   中英

如果 sidekiq 作业在 Rails 中处于死队列中,请重试它

[英]Retry sidekiq job if it is in dead queue in rails

我想编写一个 cron 作业,它从死队列中获取 sidekiq 作业并重试它,因为我们可以从 sidekiq 的 Web UI 中做到这一点,我想通过代码做同样的事情。

使用具有retry_all方法Sidekiq::DeadSet访问死队列。

Sidekiq::DeadSet.new.retry_all

这是对队列中每个作业的迭代并调用retry的薄包装。 SideKiq::DeadSet 是Enumerable ,因此您可以使用selecteach之类的方法。 wiki 页面有一个很好的例子

ds = Sidekiq::DeadSet.new

# Retry only jobs of FixedWorker class whose first argument is 123.
ds.select { |job|
  job.klass == 'FixedWorker' && job.args[0] == 123
}.map(&:retry)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM