【发布时间】:2016-06-13 05:04:11
【问题描述】:
我使用 Sidekiq 队列来处理与不可靠的第 3 方 API 的通信。由于此 API 经常一次关闭几分钟,然后再次备份,Sidekiq 很方便。当发生连接问题时,会引发错误,Sidekiq 会将作业扔回队列中,以便稍后在一段时间后重试。
我使用 NewRelic 不仅可以帮助调试崩溃,还可以用于监控。我的问题是,上面的这种当前方法会在 NewRelic 中产生错误。如果 3rd 方 API 关闭超过几分钟,错误计数会累积到足以导致通知通过 NewRelic 发送出去。
我想做的只是在工作重试达到一定次数时从我的工作人员那里引发错误。我正在使用sidekiq_retries_exhausted 来执行此操作。我的问题是我不太确定如何在作业出现错误后将它们放回队列而不引发错误。
Sidekiq 是否提供任何工具来将作业返回到队列、增加作业的重试次数,并让它一直待在那里直到它再次运行,就好像在工人类中引发了异常一样?
【问题讨论】:
标签: ruby-on-rails sidekiq