Sidekiq:如何更改失败作业的重试频率?

21

我有一种特定类型的工作,我希望它比默认的Sidekiq时间间隔更频繁地重试。目前是否可以实现?理想情况下,该任务会每5秒钟重试一次,最多重试一分钟。不确定这是不是当前可以轻松插入到Sidekiq任务中的内容。

3个回答

33

7
请注意,“5”是以秒为单位计算的。 - Neodelf

1
如果您需要其他范围,可以使用分钟语法。
sidekiq_retry_in do |_count|
  10.minutes
end

这将在sidekiq 5和7中工作,但不会在6中工作,如https://github.com/sidekiq/sidekiq/issues/5806所述。 - RMK
是的!我不知道这个。 - CHBLU

1

我正在回答的问题是,如果在块中调用10.minutes是否有效,因为我无法对答案进行评论。

根据Sidekiq代码,您需要传递一个整数,或者使用:kill:discard符号。

10.minutes返回ActiveSupport :: Duration的实例

这意味着以下内容将起作用:

class Worker
  include Sidekiq::Worker

  sidekiq_retry_in { 10.minutes.to_i }
end

Source


在 Sidekiq 7 中,这个问题已经被修复了(https://github.com/sidekiq/sidekiq/issues/5806),持续时间现在应该像以前一样工作。 - RMK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接