如何解决如果我在 nodejs 中安排要在 6 个月后执行的任务,我如何知道/测试调度程序是否可以正常工作?
我想在 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 举报,一经查实,本站将立刻删除。