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

时间:2015-01-29 12:04:00

标签: ruby rails-activejob

我希望使用retries ActiveJob作为适配器,在作业失败时限制Sidekiq的数量。

使用Sidekiq,我可以这样做:

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

  def perform(...)
  end
end

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

1 个答案:

答案 0 :(得分:5)

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

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