2017-01-03 2 views
0

Я хочу запустить две работы одновременно, но через некоторое время я остановлю один из них и продолжу второй. В нашем случае я начинаю 2 задания каждые 30 секунд, и каждое задание выполняется каждые 4 секунды. Если я остановлю первое задание в середине выполнения, оно остановится, а второе задание выполнит свою задачу, но проблема в том, что после 30 секунд первое задание также начинает выполнять задачу, даже если мы прекратили эту работу.Вложенная остановка задания cron и начало выпуска

Вот мой код:

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(); 

ответ

0

начинается Ваша первая работа только потому, что вы установили хрон для запуска обоих заданий на каждые 30 сек, которая что я вижу из вашего кода. Это позволит вам запускать всю вашу кучу вещей каждые 30 секунд.

+0

да @Viddesh, Так есть идея получить выход, как мне нужно? –

+0

Не могли бы вы подробнее рассказать о том, что вы хотите сделать именно? Ваш вопрос немного запутан. Пожалуйста, объясните, чтобы я мог вам предложить. – Viddesh

+0

Я хочу запускать несколько задач A каждые 30 секунд, но каждая задача может быть остановлена ​​и запускаться независимо в любое время по событию пользователя. Задача А также имеет временной интервал в 4 секунды. –