我有以下代码可以在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次。因此,将上一份作业运行3次?
    $ node test-cron.js
    3
    3
    3

最佳答案

注意for循环中“ i”的范围。在您的原始代码中,到作业运行时,全局“ i”的值已更改。 (尽管我不确定在for循环为“

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);
}

关于node.js - nodejs cron计划3个作业,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31100533/

10-12 20:03