2017-01-03 92 views
0

我想同時啓動兩個作業,但過了一段時間後,我將停止其中一個作業並繼續第二個作業。 在我們的案例中,我每30秒啓動2個工作,每個工作本身每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

你的第一份工作開始僅僅是因爲你設置cron來同時運行在每30秒這是就業機會我可以從你的代碼中看到什麼。這將繼續運行你的整個一堆東西,每30秒運行一次。

+0

是@Viddesh,那麼有什麼想法得到輸出,因爲我需要? –

+0

你能否詳細說明一下你想要做什麼?你的問題有點混亂。請解釋,以便我可以建議你。 – Viddesh

+0

我想每30秒運行多個任務A,但每個任務都可以隨時由用戶事件停止並獨立啓動。這些任務A的時間間隔也爲4秒。 –