我想编写一个 cron 作业,它从死队列中获取 sidekiq 作业并重试它,因为我们可以从 sidekiq 的 Web UI 中做到这一点,我想通过代码做同样的事情。
1 回答
0
使用Sidekiq::DeadSet访问死队列,它有一个retry_all
方法。
Sidekiq::DeadSet.new.retry_all
这是一个围绕迭代队列中的每个作业并调用retry
. SideKiq::DeadSet 是Enumerable,因此您可以使用 和 之类select
的方法each
。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)
于 2020-05-14T07:37:59.957 回答