1 つの Web クローラー アプリケーションで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();