【发布时间】:2021-11-20 03:10:56
【问题描述】:
我打算做的是一个程序,它会向几个用户发送生日祝贺电子邮件,然后该程序将使用今天并对数据库(它是一个 Excel 文件)执行查询,其中将获取日期将用户的出生日期与当前日期进行比较,如果月份和日期一致,则会发送邮件。我觉得可以用setInterval()来完成,但不知道会不会影响程序的性能。因为会上传到我公司的windows server 2012服务器上。
我的代码:
const express = require("express");
const app = express();
const excel = require('./public/scripts/readExcel.js');
const email = require('./services/email/sendEmail.js');
app.post('/send-email',(req, res)=>{
setInterval(() => {
email.sendEmail()
.then((result) => {
res.status(200).jsonp(req.body);;
console.log(result)
}).catch((err) => {
res.status(500).jsonp(req.body);;
console.log(err);
});
}, 3600000);//1 hour
});
app.listen(4000, ()=>{
console.log("Serven on -> http://localhost:4000");
})
基本上它的作用是每小时调用一次sendEmail 函数,该函数读取 Excel 文件或数据库并提取日期字段,与当前日期进行比较,然后使用 Nodemailer 将邮件发送给过生日的人。另外,setInterval 会进入“/send-email”的路线,或者如何提出请求?
【问题讨论】:
-
你尝试过 cronJobs 吗?
-
@Mohammednaji No
-
那你要试试cronJobs,你一定要好好理解
标签: javascript node.js dom-events nodemailer