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

标签 ruby rails-activejob

当使用 ActiveJobSidekiq 作为适配器时,我想限制作业失败时的重试次数。

使用 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

关于ruby - 如何使用 ActiveJob 和 Sidekiq 限制失败的作业重试计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28214334/

相关文章:

ruby-on-rails - 使用 simple_form 自定义错误消息

ruby-on-rails - 为我在 Rails 3 中进行集成测试的方法提供帮助

ruby-on-rails - ActionMailer 不发送在 Fake_sqs 中排队的电子邮件

ruby-on-rails - Puma 开发中的 Rails 5.1 ActiveJob 未执行特定的排队作业

ruby - #<String :0x2907480> (NoMethodError) 的未定义方法 `includes?'

mysql - 为什么 Rails 说 "cannot load such file mysql/mysql_api"?

ruby-on-rails - 在分离的 Rails 应用程序中使用 Sequel 访问 postgres 数据库

ruby-on-rails - rails 4.2 : using deliver_later with a tableless model

ruby-on-rails - 如何使用 rspec 测试 ActionMailer Deliver_later

ruby-on-rails - 创建一个始终运行的后台任务