微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在使用 node-schedule 的当天只运行一次任务

如何解决如何在使用 node-schedule 的当天只运行一次任务

安排动态处理每日电子邮件。因此,它会在周一至周五的午夜检查数据库,看看谁打开了他们的电子邮件系统,然后获取他们的数据以在他们选择的时间安排工作。

我遇到的问题是内部 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 举报,一经查实,本站将立刻删除。