2

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

4

1 回答 1

0

使用Sidekiq::DeadSet访问死队列,它有一个retry_all方法

Sidekiq::DeadSet.new.retry_all

这是一个围绕迭代队列中的每个作业并调用retry. SideKiq::DeadSet 是Enumerable,因此您可以使用 和 之类select的方法eachwiki 页面有一个很好的例子。

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 回答