如何在 sidekiq 中设置全局重试限制?
How to set a global retry limit in sidekiq?
我想在 Sidekiq 中配置全局重试限制以限制重试次数。默认情况下,Sidekiq limits the number of retries to 25 但我想为所有 Worker 将其设置得较低,以防止如果未在 Worker 上明确指定限制,则默认的最大重试周期过长。
这个值是 stored in options
并且(AFAIK)没有漂亮的 setter,所以你去:
Sidekiq.options[:max_retries] = 5
它可能在中间件初始化程序 as well 中为 RetryJobs
设置。
Sidekiq.default_worker_options['retry'] = 10
https://github.com/mperham/sidekiq/wiki/Advanced-Options#workers
您可以在初始化程序中使用 Sidekiq.default_worker_options
。所以要设置一个下限,它是
Sidekiq.default_worker_options = { retry: 5 }
您也可以在sidekiq.yml
中配置
:max_retries: 10
:queues:
- queue_1
- queue_2
参考文档 here
目前正在努力设置它以限制我们的暂存环境产生的错误噪声量(为了尽量保持在我们的错误处理服务限制之下)。似乎现在更改数量时的关键是 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
我想在 Sidekiq 中配置全局重试限制以限制重试次数。默认情况下,Sidekiq limits the number of retries to 25 但我想为所有 Worker 将其设置得较低,以防止如果未在 Worker 上明确指定限制,则默认的最大重试周期过长。
这个值是 stored in options
并且(AFAIK)没有漂亮的 setter,所以你去:
Sidekiq.options[:max_retries] = 5
它可能在中间件初始化程序 as well 中为 RetryJobs
设置。
Sidekiq.default_worker_options['retry'] = 10
https://github.com/mperham/sidekiq/wiki/Advanced-Options#workers
您可以在初始化程序中使用 Sidekiq.default_worker_options
。所以要设置一个下限,它是
Sidekiq.default_worker_options = { retry: 5 }
您也可以在sidekiq.yml
中配置:max_retries: 10
:queues:
- queue_1
- queue_2
参考文档 here
目前正在努力设置它以限制我们的暂存环境产生的错误噪声量(为了尽量保持在我们的错误处理服务限制之下)。似乎现在更改数量时的关键是 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