问题描述
我想在 6 个月后、6 个月结束前一周和 6 个月结束前一天触发邮件。 我为此使用了 node-schedule 包。
我想取消链接一些文件,并在 6 个月后分别调用方法 sendMails4DeletionClient 和 sendMails4DeletionAdmin,其中使用 nodemailer
触发了电子邮件代码。
我只想确认我是否正确设置了时间并且不会失败,这意味着邮件将在设置的持续时间后触发。请检查它,如果有任何错误,请告诉我。因为我不知道如何测试它是否会在预定的 6 个月后工作。
下面是我的代码。
router.get("/update-sources-Rejection",function (req,res,next) {
User.findOne(
{ tag: "Client","Addtasks.commonID": req.query.commonIDs },function (error,data) {
if (error) {
console.log(error);
return res.end('{"msg" : "Unable to find the data","status" : 700}');
} else {
data.Addtasks.forEach((element) => {
if (element.commonID == req.query.commonIDs) {
var y,m,d,h,mi,da = new Date();
y = da.getFullYear();
da.setMonth(da.getMonth() + 5);
m = da.getMonth();
d = da.getDate();
h = da.getHours();
mi = da.getMinutes();
console.log("month = " + m);
var date = new Date(y,0);
console.log(date);
var j = schedule.scheduleJob(date,function () {
//first scheduler start
element.Bigpaths4Clients.forEach((element2) => {
fs.unlink(element2.path,function (err,success) {
if (err) {
console.log(err);
return res.end(
'{"msg" : "Unable to unlink the Bigpaths4Clients files : Rejected","status" : 700}'
);
} else {
User.updateMany(
{ "Addtasks.commonID": req.query.commonIDs },{
$set: {
"Addtasks.$.background":
"linear-gradient(45deg,#D70652,#FF025E)","Addtasks.$.status": "Deleted",},success) {
if (error) {
console.log("error = " + error);
} else {
console.log(
"file deleted successfully and status set as Deleted"
);
}
}
);
}
});
}); // foreach loop closed
}); //first scheduler closed
var dateWeek = new Date(y,d - 7,0);
console.log("dateWeek = " + dateWeek);
var k = schedule.scheduleJob(dateWeek,function () {
//second scheduler start
sendMails4DeletionClient(
data.email,element.topic,element.status,"a week"
);
}); //third scheduler closed
var dateOneDay = new Date(y,d - 1,0);
console.log("dateOneDay = " + dateOneDay);
var l = schedule.scheduleJob(dateOneDay,"One Day Notice","one day"
);
}); //third scheduler closed
var dateOneDay4Admin = new Date(y,0);
console.log("dateOneDay4Admin = " + dateOneDay4Admin);
User.findOne(
{ tag: "Admin",dataAdmin) {
if (error) {
console.log(error);
return res.end(
'{"msg" : "Unable to find the data","status" : 700}'
);
} else {
var mAdmin = schedule.scheduleJob(
dateOneDay4Admin,function () {
//last scheduler start
sendMails4DeletionAdmin(
dataAdmin.email,element.clientName,element.clientID
);
}
); //last scheduler closed
}
}
);
} //main if ends
});
}
}
);
});
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)