Sidekiq仅在生产环境中重试

问题描述 投票:1回答:1

我有十几个sidekiq工人对象,通过发条宝石定期排队(每天大约10,000个工作 - 不是一吨)。 一切都很好。

问题是,在开发过程中,我很容易在代码中出错。 如果我将retry选项排除在等式之外,那些失败的作业将继续尝试尝试,使我的开发sidekiq日志充满失败。

我想知道我是否可以在开发模式下关闭retry ,或者如果我在本地杀死sidekiq可能清除所有工作(我正在考虑数据库清理器在测试中的工作方式)。 我已经阅读了错误处理,但没有真正看到我的主题。

例如:

class DailyActivityWorker
  include Sidekiq::Worker

  def perform(id)
    #make some call to an API
    #save parts of that call to the database
  end
end

我知道我可以在每个工人中添加这个,但这似乎是多余的

  sidekiq_options retry: false if Rails.env.development?

有没有更好的方法来解决这个问题?

ruby-on-rails ruby jobs sidekiq
1个回答
3
投票

您应该可以通过修改默认工作程序选项将它们设置在一个位置:

https://github.com/mperham/sidekiq/wiki/Advanced-Options#workers

例如, config/initializers/sidekiq.rb

if Rails.env.development?
  Sidekiq.default_worker_options = { retry: false }
end
© www.soinside.com 2019 - 2024. All rights reserved.