nodejs cron安排3个工作

我有以下代码在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循环是<2'时打印'3')。 下面的示例代码创build三个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); }