node.js - 节点 cron 10 分钟后发送邮件
问题描述
我想在这里实现的是当我进入 post 路线时,我想在 10 分钟后发送电子邮件。为此,我正在使用node-cron
. 但是这个时间表不会在 10 分钟后发送邮件。我相信这会在分钟本身为 10 时设置它,然后发送邮件?当我输入一次 10 分钟后发送邮件的路线时,我该如何实现?
cron.schedule("10 * * * *", function(){
const mailOptions = {
from: 'example@gmail.com', // sender address
to: 'example@gmail.com', // list of receivers
subject: 'Test | ' + newadvertisement.manufacturer + ' ' + newadvertisement.brand, // Subject line
html: '<p>Test
};
transporter.sendMail(mailOptions, function (err, info) {
if (err)
console.log(err)
else
console.log(info);
});
});
PS我的代码在没有node-cron的情况下工作。我也没有错误。
解决方案
这就是 cron 的工作原理。维基以获取更多阅读。TL; DR:正如你所说,它会在每次时间超过整点 10 分钟时发送邮件,而不仅仅是一次。
对于你想要的,你可以做一个简单的setTimeout()延迟 600000 (1000ms * 60sec * 10min)。
或者,您可以使用议程来更好地控制它何时起作用。这需要某种数据库,但它更可靠,因为setTimeout()
如果在设置超时后重新启动服务器将无法工作。
推荐阅读
- c++ - std::list 和垃圾收集算法
- python - 列表中项目的重复索引
- c# - EP Plus - 错误表范围与表冲突
- vue.js - Vee 跨多个领域进行验证
- python-3.x - 检查 wait_for_message 是否来自某个用户并输入某个消息
- facebook - 如何使用 Laravel Facebook Socialite 获取用户额外信息
- python - Python:如何使用 plotly 制作阴影区域或交替背景颜色?
- python - Python代码不是打印txt的内容吗?
- artifactory - 如何在文件规范中更改 AQL 查询的包含部分
- java - Adwords 库中的枚举成员为空