1

我正在使用 node-cron 发送操作电子邮件(目前正在搜索需要每分钟发送的新电子邮件)。

我的函数 (operationalEmails) 查找已发送标志 = false 的 mongodb 记录,发送电子邮件,然后更改已发送标志 = true。

如果 cron 的迭代有大量记录要发送,则可能需要一分钟以上。

如何确保在开始新的 cron 之前完成最后一次迭代?

//Run every Min
cron.schedule("* * * * *", () => {
  operationalEmails();
});
4

1 回答 1

0

你需要创建一个简单的锁

const running = false;

function operationalEmails() {

   if (running) {
     return
   }

   running = true;
   // do stuff
   running = false;
}

//Run every Min
cron.schedule("* * * * *", () => {
  operationalEmails();
});
于 2020-12-17T21:07:13.510 回答