如何在for循环中使用node-schedule安排任务?

时间:2014-10-19 12:23:11

标签: node.js express

我有一个问题,我必须在一天中的不同时间安排一些任务,因为一次调度我使用cron来获取所有数据并相应地安排它但是当我在FOR循环中安排作业时。每个作业多次执行。这是我的代码

  for(var i=0;i<_resultDataToPushLength;i++)
{
  var __date90=new Date(_DatesPlus90[i])
ar __date80=new Date(_DatesPlus80[i])
var __rescheduleDate=new Date(_DatesToReschedule[i])
  var j = schedule.scheduleJob(scheduleId,[__date90,__date80,__rescheduleDate] ,     
function()       

 {
console.log(scheduleId)

       })
}

此日志多次打印...

2 个答案:

答案 0 :(得分:0)

我认为使用异步模块可以解决您的问题。 继承人https://github.com/caolan/async

尝试此代码并查看其是否有效

var async = require("async"); 
var arr = new Array();

for(var i=0;i<=datalength;i++){
    arr[i]=i;
}

async.forEach(arr,1,function(item,callback){
    var __date90=new Date(_DatesPlus90[i])
    ar __date80=new Date(_DatesPlus80[i])
    var __rescheduleDate=new Date(_DatesToReschedule[i])
    var j = schedule.scheduleJob(scheduleId,[__date90,__date80,__rescheduleDate] ,     
    function(){
        console.log(scheduleId);
        callback();
   });
});

答案 1 :(得分:0)

我很糟糕,一切都工作正常,只是数组中的dateTime是过去的日期,所以回调函数会为每个过去的dateTime执行一次。