我有十几个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?
有没有更好的方法来解决这个问题?
答案 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