如何在sidekiq中设置全局重试限制?

时间:2016-01-28 14:07:53

标签: ruby-on-rails ruby sidekiq

我想在Sidekiq中配置全局重试限制以限制重试次数。默认情况下,Sidekiq limits the number of retries to 25但是我希望将所有Worker设置得更低,以防止在工作人员上没有明确指定限制时的长默认最大重试周期。

5 个答案:

答案 0 :(得分:7)

Sidekiq.default_worker_options['retry'] = 10

https://github.com/mperham/sidekiq/wiki/Advanced-Options#workers

答案 1 :(得分:4)

您还可以在 sidekiq.yml

中进行配置
:max_retries: 10
:queues:
  - queue_1
  - queue_2

请参阅文档here

答案 2 :(得分:1)

这个值是http://codepen.io/vanuatu/pen/VeQMpp而且(AFAIK)没有漂亮的设置器,所以你走了:

Sidekiq.options[:max_retries] = 5

可能会在中间件初始化程序stored in options中为RetryJobs设置。

答案 3 :(得分:1)

当前正在努力进行此设置,以限制我们的登台环境所产生的错误噪声数量(为了尽量低于我们的错误处理服务限制)。似乎在更改金额时密钥现在为max_retries,而retry是布尔值,表示是否应重试还是直接进入“死”队列。

https://github.com/mperham/sidekiq/wiki/Error-Handling#automatic-job-retry

这是我的Sidekiq配置文件中所显示的内容:

if Rails.env.staging?
  Sidekiq.default_worker_options['max_retries'] = 5
end

更新:本来可能是我自己的困惑,但是由于某种原因,default_worker_options似乎并没有为我工作。我最终将其更改为此,并且按预期工作。失败的作业直接进入Dead队列:

Sidekiq.options[:max_retries] = 0

答案 4 :(得分:0)

您可以在初始化程序中使用Sidekiq.default_worker_options。所以设置一个下限就是

Sidekiq.default_worker_options = { retry: 5 }