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

How to limit the failed job retry counter with ActiveJob and 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