【问题标题】:Prevent Cron Job From Running On Reboot防止 Cron 作业在重新启动时运行
【发布时间】:2019-07-10 02:48:04
【问题描述】:

我不确定这是否可能.. 但我正在努力做到这一点,以便在服务器重新启动(即代码推送)时我的 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
  );
}

我需要它只在指定时间运行,而不是在服务器重新启动时运行。

【问题讨论】:

    标签: node.js cron


    【解决方案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

    【讨论】:

      最近更新 更多