我正在尝试在 setInterval 方法中运行计划的作业进程,但无法正确实现它。
我想要做的是,我有一个学生列表,我需要在某个日期发送电子邮件。方法的内容可能会改变(我在下面提到过),所以我必须以 1 小时的间隔运行这个作业,这样如果数据库中有更新,它会使用更新的数据重新安排作业。
我必须为每个学生分配相同日期的工作。但在这里,工作没有重新安排。它们堆叠在一起。
示例:如果我现在运行服务器 30 秒,它将为每个学生安排 6 次作业,给我总共 6*3 = 18 个作业。我想要的只是 3 个学生的 3 个工作。
const schedule = require("node-schedule");
setInterval(() => {
["student1", "student2", "student3"].forEach((student) => {
const job1 = schedule.scheduleJob(date1, function () {
console.log("notification for: " + student);
// Data in here might change
});
});
}, 5000);
使用的包:node-schedule ( https://www.npmjs.com/package/node-schedule )