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

Meh*_*rsi 1 ruby rails-activejob

我想限制的数量retries当作业使用失败ActiveJobSidekiq作为适配器.

使用Sidekiq,我可以这样做:

class LessRetryableWorker
  include Sidekiq::Worker
  sidekiq_options :retry => 5

  def perform(...)
  end
end
Run Code Online (Sandbox Code Playgroud)

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

Meh*_*rsi 5

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

Sidekiq.configure_server do |config|
  config.server_middleware do |chain|
    chain.add Middleware::Server::RetryJobs, :max_retries => 7
  end
end
Run Code Online (Sandbox Code Playgroud)