2014-06-11 75 views
0

我在我的本地機器上安裝了cron模塊,我在heroku上部署了我的應用程序。node.js`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函數,第二個 - 每一天執行一次。腳本在我的本地機器上完美運行,但不適用於heroku。

+0

您是否將其添加到您的package.json文件中https://devcenter.heroku.com/articles/getting-started-with-nodejs#declare-dependencies-with-npm – KeepCalmAndCarryOn

+0

@KeepCalmAndCarryOn當然可以。除此之外的所有模塊都能完美工 – user3215609

回答

1

您的cron工作永遠不會運行,因爲Heroku dyno進入睡眠狀態。 https://devcenter.heroku.com/articles/dynos#dyno-sleeping

嘗試通過訪問應用中的某個URL來喚醒它,並查看是否執行了cron作業。

爲了讓您的cron作業得以執行,您需要讓Heroku應用程序全天候保持清醒狀態。要確保您的Heroku應用程序不會進入睡眠狀態,請安裝NewRelic Heroku Addon,您可以設置可用性監控。你提供一個每30秒鐘NewRelic ping的URL,因此保持你的應用程序清醒。此功能的預期目的是爲了提醒您,如果您的網站由於業務和性能原因而停止運行,但它還具有防止應用空閒的額外好處。

希望它有幫助!

相關問題