问题描述
安排动态处理每日电子邮件。因此,它会在周一至周五的午夜检查数据库,看看谁打开了他们的电子邮件系统,然后获取他们的数据以在他们选择的时间安排工作。
我遇到的问题是内部 for 循环计划作业正在成为重复发生的作业,因此当应用运行超过 24 小时时,我最终每天都会收到一封额外的电子邮件。
如何安排作业只运行一次然后停止/取消。
const dailyEmails = schedule.scheduleJob("Daily Emails",'00 00 * * 1-5',function () {
con.query("SELECT * FROM login WHERE role='ADMIN' AND survey_time IS NOT NULL AND survey_system=1",(err,rows,fields) => {
if (err) {
console.log(err)
}
const jobs ={};
for (var i = 0; i < rows.length; i++) {
let companyName = rows[i].company_name;
var hr = surveyTime.split(':')[0]
var m = surveyTime.split(':')[1]
// let time = {hour: hr,minute: m}
jobs[companyName]=schedule.scheduleJob(companyName,`${m} ${hr} * * *`,function () {
db.query("SELECT disTINCT i.name,i.type,i.email from tb_employees_info i",fields) => {
if (err) {
console.log(err)
}
//email contents
// // send mail with defined transport object
transporter.sendMail(msg);
}
})
})
}
})
});
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)