首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用nodejs Kue进行条件尝试

使用nodejs Kue进行条件尝试
EN

Stack Overflow用户
提问于 2015-05-28 10:15:55
回答 1查看 667关注 0票数 3

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

我的代码类似于下面的代码,但不能工作

代码语言:javascript
复制
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();
EN

回答 1

Stack Overflow用户

发布于 2016-02-17 12:27:48

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

代码语言:javascript
复制
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);
        }
    });
});
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30496111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档