我正在使用Sidekiq進行Rails應用程序的作業管理。我想知道你如何得到失敗的工作(Ids,對象,錯誤信息等)的論點?在WebUI上,你得到的只是失敗作業的數量。如果我理解正確,默認情況是將給定作業失敗的所有時間加起來。我部署了我的應用程序,它正在幾個工作人員上運行。每個單獨的工作人員都很難過,並試圖找出問題,特別是當你有一個很久以前的sidekiq.log時。使用它們的參數查找失敗的Sidekiq作業列表
我在這裏和網上搜索答案。最近的一個在以下鏈接中被描述。
How to find failed jobs list in sidekiq?
這使得找出有多少失敗的作業有一段時間。但是,我仍然不知道如何知道工作失敗的原因以及原因。
基本上,我想以某種方式收集job_ids並定期檢查哪些失敗或者是否有更簡單的方法,只需查詢Sidekiq/Redis並查看失敗作業的參數和錯誤。
我還訪問了這個鏈接:Get error message out of Sidekiq job
下面是一個例子的工作,我使用
class ClassificationJob < ActiveJob::Base
queue_as :default
def perform(entity)
entity.preprocess!
entity.classify!
end
end
我試圖修改這一
class ClassificationJob < ActiveJob::Base
queue_as :default
def perform(entity)
entity.preprocess!
entity.classify!
store entity_id: entity.id.to_s
entity_id = retrieve :entity_id
end
end
但它吐出以下錯誤:
ArgumentError: You cannot include Sidekiq::Worker in an ActiveJob: ClassificationJob
謝謝,
雅尼克
謝謝你的答覆。根據我的理解,有些工作已經失敗並將被重新嘗試。在webUI上,只要點擊「重試」按鈕,就會列出它們。其他人失敗(沒有辦法點擊)。在我看來,其中一些甚至沒有重試(否則,由於需要重試多次,需要更多時間才能登錄失敗的列表)。我特別感興趣的是那些。我在這裏誤解了什麼? – Yann
「失敗」是導致錯誤的作業執行嘗試。一項工作可能會失敗N次,這就是失敗失敗的原因:它只是一個計數器。你是對的,如果一項工作禁用重試,它是短暫的,除了增加失敗之外不會在UI中顯示。 –
感謝您的友好和快速回復Mike。 – Yann