我不确定这是否可能..但是我试图做到这一点,以使我的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
);
}
我需要它仅在指定的时间运行,而在服务器重启时不运行。
答案 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