有条件的尝试与nodejs Kue

我在一个networking爬虫应用程序中使用kue 。 如果错误符合特定条件,我想设置某些失败作业的attempts 。 例如,如果错误是由套接字挂起引起的,则作业将以1分钟的间隔重试3次。

我的代码如下所示,但不起作用

 var kue = require('kue'); var queue = kue.createQueue(); queue.process('grab', function (job, done){ //doCrawlingJob is async call and returns promise doCrawlingJob(job).then(function(result){ done(); }.catch(function(err){ if (err.message.indexOf("socket hang up") >= 0) { job.attempts(3).backoff({delay:60*1000}); job.save(function(){ done(err); }); } else { done(err); } ); }); //... var job = queue.create('grab', data).removeOnComplete(true).save(); 

这可能不会回答你的问题,但我注意到你在代码片段中有一些格式错误。 尝试像这样添加一些括号:

 queue.process('grab', function (job, done){ //doCrawlingJob is async call and returns promise doCrawlingJob(job).then(function(result){ done(); }).catch(function(err){ if (err.message.indexOf("socket hang up") >= 0) { job.attempts(3).backoff({delay:60*1000}); job.save(function(){ done(err); }); } else { done(err); } }); });