防止Cron作业在重新启动时运行

时间:2019-07-09 17:43:41

标签: node.js cron

我不确定这是否可能..但是我试图做到这一点,以使我的cron作业在服务器重新引导(即代码推送)时不运行。我有一个Cron作业,要在一天的很早时间内运行,以抓取数据,这大约需要3个小时。当我执行代码推送并且服务器重新启动时,cron作业在重新启动时运行,从而导致数据刮取再次开始。

这是使用https://www.npmjs.com/package/cron的基于node.js的cron作业。检查文档后,我找不到有关此信息。

这是我用来触发cron作业的代码

  new CronJob('0 06 * * *' //run every day at 06:00 AM
    ,() => {s3Scrape(db);}
    ,() => {log.debug('!Terminating AWS Job!')}
    ,true
    ,'America/Los_Angeles'
    ,null
    ,true
  );
}

我需要它仅在指定的时间运行,而在服务器重启时不运行。

1 个答案:

答案 0 :(得分:1)

这是因为您已将“ runOnInit”的设置设置为true。当您首次启动cron作业时,这将运行您的cronjobs并触发onTick事件。 而是将其设置为false。这意味着cronjob只会等到适当的时间执行。

new CronJob('0 06 * * *' //run every day at 06:00 AM
    ,() => {s3Scrape(db);}
    ,() => {log.debug('!Terminating AWS Job!')}
    ,true
    ,'America/Los_Angeles'
    ,null
    ,false // set this to false
  );
}

在此处签出文档: https://www.npmjs.com/package/cron