nodejs cron计划3个工作

时间:2015-06-28 13:47:22

标签: node.js cron

我有以下代码在5秒内安排3个工作:

var moment = require('moment');
var CronJob = require('cron').CronJob;
for (i=0; i < 2; i++)
var job = new CronJob(moment().add(1, 'minutes').toDate(), function(){
    console.log(i);
}, true, 'America/Los_Angeles');

但不是打印0,1,2而是打印3次。那么最后一次工作3次?     $ node test-cron.js     3     3     3

1 个答案:

答案 0 :(得分:2)

观看&#39; i&#39;的范围。在你的for循环中。在您的原始代码中,当作业运行全局&#39; i&#39;已经改变。 (虽然我不确定为什么要打印&#39; 3当for循环是&#39;&lt; 2&#39;)。下面的示例代码创建了三个cron作业,并且每5秒运行一次。

var CronJob = require('cron').CronJob;

function scheduleJob(counter) {
    var job = new CronJob('*/5 * * * * *', function(){
            console.log(counter);
    }, true, 'America/Los_Angeles');

    return job;    
}

for (i=0; i < 3; i++) {
    scheduleJob(i);
}