簡體   English   中英

Node.js Kue如何重啟失敗的作業

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM