[英]Node.js Kue how to restart failed jobs
我在我的node.js應用程序中使用kue來延遲作業。
我有一些問題要弄清楚如何使用kue的API重新啟動作業,而不必使用redis命令手動將作業的ID從失敗的作業列表移動到非活動作業列表。
這可能使用kue嗎?
我不想設置固定數量的重試次數 - 我只想重試特定的工作。
對於維持良好維護的替代方案的建議也是受歡迎的。
我不知道這是否有效,但您可以嘗試將作業狀態重置為活動狀態,然后再次保存作業:
job.on('failed', function() {
job.state('inactive').save();
編輯:將狀態設置為非活動將正確重新排隊任務。
這也可以使用隊列級事件來完成。
queue.on('job failed', function(id, result) {
kue.Job.get(id, function(err, job) {
if (!err && shouldRetry(job))
job.state('inactive').save();
});
});
因此,您不需要為每個要重試的作業執行此操作。 相反,您可以在隊列級事件中過濾它。
請參閱官方文檔中的失敗嘗試
默認情況下,作業只有一次嘗試,即當它們失敗時,它們被標記為失敗,並且在您進行干預之前保持這種狀態。 但是,Kue允許您指定這一點,這對於轉移電子郵件等工作非常重要,如果失敗,通常可以在沒有問題的情況下重試。 為此,請使用數字調用.attempts()方法。
queue.create('email', {
title: 'welcome email for tj'
, to: 'tj@learnboost.com'
, template: 'welcome-email'
}).priority('high').attempts(5).save();
參考: 失敗嘗試
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.