Javascript 在节点cron中未调用onComplete()

Javascript 在节点cron中未调用onComplete(),javascript,node.js,cron,Javascript,Node.js,Cron,您好,我正在尝试测试节点cron,但在一种情况下无法获得所需的响应 当当前cron完成时,我需要再次启动cron请求。因此,我需要调用onComplete(),但我无法获得回调 我的代码片段是: CronWrapper.prototype.pushNotificationCron = function() { // change console to winston in real implementation. console.log('Creating job');

您好,我正在尝试测试
节点cron
,但在一种情况下无法获得所需的响应

当当前cron完成时,我需要再次启动cron请求。因此,我需要调用
onComplete()
,但我无法获得回调

我的代码片段是:

CronWrapper.prototype.pushNotificationCron = function() {
    // change console to winston in real implementation.
    console.log('Creating job');
    var jobPattern = '*/10 * * * * *';
    var job = new CronJob(jobPattern, onJobStarted, onJobCompleted, false);
    console.log('Starting job');
    job.start();
};

var onJobStarted = function(){
    var date = new Date();
    console.log('Cron started on \t' + date);
    return;
};

var onJobCompleted = function(){
    winston.info('Job completed:');
};
Cron started on     Tue Dec 16 2014 12:59:40 GMT+0530 (IST)
Cron started on     Tue Dec 16 2014 12:59:50 GMT+0530 (IST)
Cron started on     Tue Dec 16 2014 13:00:00 GMT+0530 (IST)
输出:

CronWrapper.prototype.pushNotificationCron = function() {
    // change console to winston in real implementation.
    console.log('Creating job');
    var jobPattern = '*/10 * * * * *';
    var job = new CronJob(jobPattern, onJobStarted, onJobCompleted, false);
    console.log('Starting job');
    job.start();
};

var onJobStarted = function(){
    var date = new Date();
    console.log('Cron started on \t' + date);
    return;
};

var onJobCompleted = function(){
    winston.info('Job completed:');
};
Cron started on     Tue Dec 16 2014 12:59:40 GMT+0530 (IST)
Cron started on     Tue Dec 16 2014 12:59:50 GMT+0530 (IST)
Cron started on     Tue Dec 16 2014 13:00:00 GMT+0530 (IST)
请指出我犯了什么错误

库详细信息:

CronWrapper.prototype.pushNotificationCron = function() {
    // change console to winston in real implementation.
    console.log('Creating job');
    var jobPattern = '*/10 * * * * *';
    var job = new CronJob(jobPattern, onJobStarted, onJobCompleted, false);
    console.log('Starting job');
    job.start();
};

var onJobStarted = function(){
    var date = new Date();
    console.log('Cron started on \t' + date);
    return;
};

var onJobCompleted = function(){
    winston.info('Job completed:');
};
Cron started on     Tue Dec 16 2014 12:59:40 GMT+0530 (IST)
Cron started on     Tue Dec 16 2014 12:59:50 GMT+0530 (IST)
Cron started on     Tue Dec 16 2014 13:00:00 GMT+0530 (IST)

“cron”:“1.0.5”

仔细阅读文档后,我发现我缺少调用stop()

如文件所述

onComplete-[可选]-作业启动时将触发的函数 完成,当它停止时

因此,现在我在完成时手动调用
stop()
,并获取回调。现在我的代码看起来像:

CronWrapper.prototype.pushNotificationCron = function() {
    // change console to winston in real implementation.
    console.log('Creating job');
    var jobPattern = '*/10 * * * * *';
    var job = new CronJob(jobPattern, function(){
        var date = new Date();
        console.log('Cron started on \t' + date);
        job.stop();
    }, onJobCompleted, false);
    console.log('Starting job');
    job.start();
};

// var onJobStarted = function(){
//  var date = new Date();
//  console.log('Cron started on \t' + date);

// };

var onJobCompleted = function(){
    winston.info('Job completed:');
};
输出

Cron started on     Tue Dec 16 2014 13:13:30 GMT+0530 (IST)
info: Job completed:

我不认为调用stop()方法是个好主意,那么为什么它被称为批处理作业呢? stop()方法将终止批处理,并且不会在下一个计划时间再次执行。 我相信它是为了调试目的而设计的,比如在捕获错误时停止作业或者类似的事情