Sidekiq仅在生产环境中重试

时间:2014-12-05 15:48:43

标签: ruby-on-rails ruby jobs sidekiq

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

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

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

例如:

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?

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

1 个答案:

答案 0 :(得分: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