Node.js 嵌套cron作业停止和启动问题

Node.js 嵌套cron作业停止和启动问题,node.js,cron,cron-task,Node.js,Cron,Cron Task,我想同时开始两份工作,但一段时间后我会停止其中一份,继续做第二份。 在我们的案例中,我每30秒启动2个作业,每个作业本身每4秒执行一次,如果在执行中停止第一个作业,它将停止,而第二个作业执行任务,但问题是,在30秒之后,即使我们停止了这项工作,第一个作业也开始执行任务。 这是我的密码: var job1; var job = new CronJob({ cronTime: '*/30 * * * * *', onTick: function () { var i

我想同时开始两份工作,但一段时间后我会停止其中一份,继续做第二份。 在我们的案例中,我每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();

您的第一个作业开始只是因为您将cron设置为每30秒运行两个作业,这是我从代码中看到的。这将继续每30秒运行一次你所有的东西。

yes@Viddesh,那么有什么想法可以获得我需要的输出吗?你能详细说明你到底想做什么吗?你的问题有点让人困惑。请解释,以便我向您提出建议。我希望每30秒运行多个任务A,但每个任务可以在任何时间由用户事件独立停止和启动。这些任务A的时间间隔也为4秒。如果您将作业设置为通过cron运行,则您将无法停止它的运行,这就是cron的用途。(为了在不受手动干扰的情况下自动运行)他们提供了手动停止作业的
stop()
方法,但我的问题是如何从作业列表中停止特定作业