我像往常一样设置了 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 如何重新启动失败的作业
我还尝试像在自述文件中一样添加尝试() ,如下所示:
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 以外的东西,知道什么可以使事件不触发吗?