0
是否建議刪除或殺死中間件內的失敗作業?我無法在wiki中找到關於此事的任何文檔。 FWIW,我正在使用sidekiq-pro。Sidekiq刪除或殺死中間件內的作業
我注意到的一件事是即使我有正確的工作ID,工作並沒有被殺死。當隊列入隊時,sidekiq作業是否可能被分配了不同的ID?
STATUSES = {
canceled: 6,
failure: 9,
expired: 10
}.freeze
def call(worker, message, queue)
key = message['args'][0]
jid = message['jid']
if key.present?
// status_id fetched from database
status_id = Req.find(key).status
if STATUSES.values.include?(status_id)
if killable?(message)
job = Sidekiq::RetrySet.new.find_job(jid)
// kill doesn't always succeed because job cannot be found
job.kill
end
end
end
yield
end
def killable?(message)
message.key?('retry_count')
end
感謝您迴應邁克,我想知道你們什麼時候出現:d 但在這種情況下,我需要殺死這個工作,因爲我們不想在重試隊列中使用它。如果獲得這些狀態,它將不會成功。 – hyde
啊我明白你的意思,所以這意味着它也應該從重試隊列中消失。我會給你一個鏡頭並向你報告。 – hyde
將作業從重試集移至隊列以供執行。沒有什麼可以從重試集中刪除。 –