いつものように、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 以外の何かのようです。何がイベントを発生させないのでしょうか?