node.js`cron`模块无法在heroku上运行

时间:2014-06-11 06:48:34

标签: node.js heroku cron

我在本地计算机上安装了cron模块,我在heroku上部署了我的应用程序。

new cronJob('00 00 * * * *', function () {
    log.info('every hour');
}, null, true);

new cronJob('00 00 00 * * *', function () {
    log.info('every day');
}, null, true);

第一个cronJob每小时执行log.info个功能,第二个 - 每天执行{{1}}个功能。脚本在我的本地机器上完美运行,但不能在heroku上运行。

1 个答案:

答案 0 :(得分:1)

因为Heroku dyno去睡觉,你的cron工作从未运行过。 https://devcenter.heroku.com/articles/dynos#dyno-sleeping

尝试通过访问应用中的某个网址来查看,然后查看是否执行了cron作业。

为了让你的cron作业被执行,你需要让Heroku应用程序保持全天候醒来。要确保您的Heroku应用程序不会进入睡眠状态,请安装NewRelic Heroku Addon,您可以设置可用性监视。您提供NewRelic每30秒ping一次的URL,从而保持您的应用程序清醒。此功能的目的是在出于业务和性能原因导致您的网站出现故障时提醒您,但它还可以防止您的应用空闲。

希望它有所帮助!