我从其他网站抓取leads
,然后激活。使用Sidekiq
我每小时运行HealthCheckerWorker
以停用我网站上的潜在客户,除非它仍在其他网站上运行。
有时HealthCheckerWorker
会抛出错误,iE:bad URI
等等......我的困境在于,如果作业失败了10次,现在在死亡作业队列中,lead
仍然被认为是活跃的,虽然它可能已经在其他网站上消失了。
我认为解决方案是添加sidekiq_retries_exhausted
块,如下所示:
sidekiq_retries_exhausted do |lead_id|
Lead.find(lead_id).deactivate
end
但正如docs:
中所定义的那样钩子接收排队的消息作为参数。在Sidekiq将作业移动到DJQ之前调用此挂钩。
因此它只将message
作为参数。如何在重试耗尽后停用线索?
答案 0 :(得分:8)
消息是整个工作,包括参数。拔出参数。
sidekiq_retries_exhausted do |msg|
lead_id = msg['args'].first
Lead.find(lead_id).deactivate
end