2

いつものように、kue ジョブをセットアップします。

var job = jobs.create('phase2', s);
    job.on('complete', function (){
        console.log('Job'+job.id+' is done');
    }).on('failed', function (){
        console.log('Job'+job.id+'has failed');
    });
    job.save();

特定の条件で、ジョブが失敗して自動的に再起動されるようにしたい。そのために、プロセッサに次の行があります。

if(t==1){
    //Keep going
}else{
    console.log('PROBLEM');
    job.failed();
}

失敗したイベントを次のように変更しようとしました:

.on('failed', function (){
    console.log('Job'+job.id+'has failed');
    job.state('inactive').save();
 });

ここで提案されているように:Node.js Kue失敗したジョブを再起動する方法

また、 Readmeのように attempts() を追加しようとしました。

var job = jobs.create('phase2', s).attempts(5);

これらのことはどれもうまくいきませんでした。ジョブは「失敗」としてマークされ、コンソールには「問題」と表示されますが、「失敗」リスナーで定義されたメッセージが表示されません。

編集

さらに読んだ後、次を使用して、キューレベルで「ジョブが失敗しました」イベントをリッスンしようとしました:

  jobs.on('job failed', function(id,result){
    console.log('fail queue');
    kue.Job.get(id, function(err, job){
      job.state('inactive').save();
    });
  });

同じ結果で、コンソール ログはありません...Kue 以外の何かのようです。何がイベントを発生させないのでしょうか?

4

1 に答える 1