node-cron不能正常工作?

我在Heroku上部署了一个应用程序myapp

我写了一些cron代码:

var time = require('time'); var CronJob = require('cron').CronJob; var job = new CronJob({ cronTime: '00 45 12 * * *', onTick: clearReserve, start: true, timeZone: 'Asia/Shanghai' }); 

我的目的是在特定的时间每天调用名为“clearReserve”的函数。 但是它只在第一天上传我的代码到heroku,并且再也不做这个cron工作。

PS:这个“clearReserve”函数将操纵我的数据库,我使用MongoLab中创build的MongoLab URI,而不是Heroku插件。

你的cron工作从来没有再跑,因为Heroku dyno睡觉。 https://devcenter.heroku.com/articles/dynos#dyno-sleeping

为了让你的cron作业执行,你需要保持Heroku应用程序全天候清醒。 为确保您的Heroku应用程序不会进入睡眠状态,请安装NewRelic Heroku Addon,您可以设置可用性监视。 您提供了一个每30秒钟NewRelic ping一个URL,因此保持您的应用程序清醒。 此function的预期目的是为了提醒您,如果您的网站由于业务和性能原因而停止运行,但它具有防止应用空闲的额外好处。

希望能帮助到你!