nodejs cron 安排 3 个作业
nodejs cron to schedule 3 jobs
我有以下代码可以在 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 次?
$节点测试-cron.js
3个
3个
3
注意 for 循环中 'i' 的作用域。在您的原始代码中,到 jobs 运行 时,全局 'i' 的值已更改。 (虽然我不确定为什么当 for 循环为 '< 2' 时它打印 '3')。下面的示例代码创建了三个 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);
}
我有以下代码可以在 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 次? $节点测试-cron.js 3个 3个 3
注意 for 循环中 'i' 的作用域。在您的原始代码中,到 jobs 运行 时,全局 'i' 的值已更改。 (虽然我不确定为什么当 for 循环为 '< 2' 时它打印 '3')。下面的示例代码创建了三个 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);
}