2014-10-06 64 views
4

我從其他站點抓取leads激活他們在我的。與Sidekiq我運行HealthCheckerWorker每小時停用我的網站上的領先,除非它仍然在其他網站上運行。sidekiq重試耗盡參數

有時HealthCheckerWorker拋出一個錯誤,即:bad URI等等......我在這裏的困境是,如果工作在死作業隊列失敗現在的10倍,在lead仍然被認爲是活躍雖然可能很長去了另一個網站。

我認爲解決辦法是增加一個sidekiq_retries_exhausted塊,像這樣:

sidekiq_retries_exhausted do |lead_id| 
    Lead.find(lead_id).deactivate 
end 

但如在docs:

限定的鉤接收排隊的消息作爲一個參數。在Sidekiq將工作轉移到DJQ之前調用這個鉤子。

所以它只獲得message作爲參數。 在重試完畢後如何取消激活的引導?

回答

8

該消息是整個工作,包括參數。只要拿出參數。

sidekiq_retries_exhausted do |msg| 
    lead_id = msg['args'].first 
    Lead.find(lead_id).deactivate 
end 
+0

JUP,由於分配:)偉大的工作順便說一句,在愛情與工具哈哈 – 2014-10-07 10:12:16

+0

僅供參考,你會打電話來的消息[「ARGS」] – 2014-10-24 08:02:26