嵌套的cron作业停止并启动问题

时间:2017-01-03 07:16:13

标签: node.js cron cron-task

我想同时开始两个工作,但过了一段时间后我会停止其中一个并继续第二个工作。 在我们的情况下,我每30秒开始2个作业,每个作业本身每4秒执行一次,如果我在执行过程中停止第一个作业,它将停止,第二个作业正在执行其任务但问题是在30秒后第一个即使我们已经停止这项工作,工作也开始执行任务。

这是我的代码:

var job1;
var job = new CronJob({
    cronTime: '*/30 * * * * *',
    onTick: function () {

        var interval = 4000;
        var index = 0;
        var index1 = 0;
        var users = ['U1', 'U2', 'U3', 'U4']
        var users1 = ['D1', 'D2', 'D3', 'D4']

        job1 = new CronJob({
            cronTime: '*/4 * * * * *',
            onTick: function () {
                  var user = users[index];
                  console.log("Sent To :" + user);
                  index++;
                  if (users.length == index) {
                      job1.stop();
                  }
            },
            start: false,
            timeZone: 'GMT'
        });
        job1.start();

        var job2 = new CronJob({
            cronTime: '*/4 * * * * *',
            onTick: function () {
                var user = users1[index1];
                console.log("Sent To :" + user);
                index1++;
                if (users1.length == index1) {
                    job2.stop();
                }
            },
            start: false,
            timeZone: 'GMT'
        });
        job2.start();
    },
    start: false,
    timeZone: 'GMT'
});
job.start();

停止工作:

job1.stop();

1 个答案:

答案 0 :(得分:0)

你的第一份工作开始只是因为你已经设置了cron来每隔30秒运行两个作业,这是我从你的代码中看到的。这将继续运行你的一堆东西,每30秒运行一次。