2017-01-03 8 views
0

同時に2つのジョブを開始したいのですが、しばらくしてそのうちの1つを停止し、2番目のジョブを続行します。 私の場合、私は30秒ごとに2つのジョブを開始し、各ジョブ自体は4秒ごとに実行します。実行の途中で最初のジョブを停止すると、ジョブは停止し、2番目のジョブはそのタスクを実行していますが、その仕事をやめても、最初の仕事は仕事を始めます。停止ジョブの場合入れ子にされた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秒ごとにジョブの両方を実行するようにcronを設定しているという理由だけで私があなたのコードから見えるもの。これは30秒ごとに実行するようにあなたの一束を実行し続けます。

+0

はい@Viddesh、私は必要な出力を得るために任意のアイデアはありますか? –

+0

あなたは正確に何をしたいのですか詳細を教えてください。あなたの質問はちょっと混乱しています。私があなたを提案できるように説明してください。 – Viddesh

+0

私は30秒ごとに複数のタスクAを実行したいが、各タスクはユーザイベントによっていつでも独立して停止して開始することができる。これらのタスクAもまた4秒の時間間隔を有する。 –

関連する問題