如果我在 nodejs 中安排要在 6 个月后执行的任务,我如何知道/测试调度程序是否可以正常工作?

问题描述

我想在 6 个月后、6 个月结束前一周和 6 个月结束前一天触发邮件。 我为此使用了 node-schedule 包。

我想取消链接一些文件,并在 6 个月后分别调用方法 sendMails4DeletionClientsendMails4DeletionAdmin,其中使用 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 (将#修改为@)