Node-Cron:如何确保最后一项工作完成
Node-Cron: how to ensure last job is complete
我正在使用 node-cron 发送操作电子邮件(目前正在搜索需要每分钟发送的新电子邮件)。
我的函数 (operationalEmails) 查找 mongodb 已发送标志 = false 的记录,发送电子邮件,然后更改已发送标志 = true。
如果 cron 的迭代有大量记录要发送,可能需要一分钟以上。
如何确保 cron 的最后一次迭代在开始新的之前完成?
//Run every Min
cron.schedule("* * * * *", () => {
operationalEmails();
});
您需要创建一个简单的锁
const running = false;
function operationalEmails() {
if (running) {
return
}
running = true;
// do stuff
running = false;
}
//Run every Min
cron.schedule("* * * * *", () => {
operationalEmails();
});
我正在使用 node-cron 发送操作电子邮件(目前正在搜索需要每分钟发送的新电子邮件)。
我的函数 (operationalEmails) 查找 mongodb 已发送标志 = false 的记录,发送电子邮件,然后更改已发送标志 = true。
如果 cron 的迭代有大量记录要发送,可能需要一分钟以上。
如何确保 cron 的最后一次迭代在开始新的之前完成?
//Run every Min
cron.schedule("* * * * *", () => {
operationalEmails();
});
您需要创建一个简单的锁
const running = false;
function operationalEmails() {
if (running) {
return
}
running = true;
// do stuff
running = false;
}
//Run every Min
cron.schedule("* * * * *", () => {
operationalEmails();
});