如何在sidekiq中正确处理作业失败

How to handle job failure properly in sidekiq

我有一个对数据库数据进行一些处理的应用程序,有时我会在两个线程之间出现乐观并发错误。我应该如何使用 sidekiq 来处理它?

现在我抛出异常使作业失败并让 sidekiq 稍后重试,但也许它不是最优的?

有没有其他方法可以更优雅地失败作业?

干杯

此方法是正常的解决方案,您可能唯一想做的就是更新重试时间。只需添加到您的工作人员即可。

sidekiq_retry_in do |count|
  10 * (count + 1) # (i.e. 10, 20, 30, 40)
end

sidekiq 文档中的更多信息:https://github.com/mperham/sidekiq/wiki/Error-Handling