【发布时间】:2021-09-07 13:21:50
【问题描述】:
我的目标是能够在多个节点调度作业的每一个中运行不同的函数,这些作业将在一天中的特定时间运行,并根据一天中的时间调用特定的函数。
我有以下代码,作为一个简单的例子,我已经简化了。
var f1 = function () {
return fetch('url1.php', {
method: 'post',
headers: {
'Content-Type': 'application/json'
}
})
}
var f2 = function () {
return fetch('url2.php', {
method: 'post',
headers: {
'Content-Type': 'application/json'
}
})
}
var tasks = [f1, f2];
const promesas = async(tasks) => {
return await Promise.all(tasks.map(function (e, j) {
rules[j] = new schedule.RecurrenceRule();
rules[j].dayOfWeek = [new schedule.Range(1, 5)];
rules[j].hour = hours[j];
rules[j].minute = mins[j];
return schedule.scheduleJob(rules[j], async function () {
try {
await tasks[j]()
} catch (error) {
console.log(error);
}
});
})).then(response => {
return Promise.resolve(response);
});
}
promesas(tasks);
我可以在工作之外很好地运行这些功能,或者在单个工作中运行。但不是在我一开始描述的我想要的设置中。
第一次迭代工作正常,第二次失败了。出于测试目的,每个作业之间的差异为一分钟。
【问题讨论】:
标签: node.js node-fetch node-schedule