【问题标题】:nodejs cron to schedule 3 jobsnodejs cron安排3个作业
【发布时间】:2015-06-28 13:47:21
【问题描述】:

我有以下代码可以在 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

【问题讨论】:

    标签: node.js cron


    【解决方案1】:

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

    【讨论】:

    • 谢谢,那3可能来自同一个程序dz的不同版本。
    • @irom - 我想就是这样。希望这会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2015-06-23
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    • 2019-03-27
    • 2022-12-07
    相关资源
    最近更新 更多