我有一个问题,我必须在一天中的不同时间安排一些任务,因为一次调度我使用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)
})
}
此日志多次打印...
答案 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执行一次。