如何使用ActiveJob和Sidekiq限制失败的作业重试计数器?

我想限制使用ActiveJobSidekiq作为适配器的作业失败时的retries

使用Sidekiq,我可以这样做:

 class LessRetryableWorker include Sidekiq::Worker sidekiq_options :retry => 5 def perform(...) end end 

Sidekiq配置不提供全局retry配置。 每个Worker都负责设置retry选项。 所以我想我必须在ActiveJob端实现它才能正确地完成它。

Sidekiq提供服务器级配置来处理这种情况。 来自Sidekiq ruby-doc:

 Sidekiq.configure_server do |config| config.server_middleware do |chain| chain.add Middleware::Server::RetryJobs, :max_retries => 7 end end