Heroku R10 Boot Timeout + Node.js Cron

时间:2015-06-01 16:14:55

标签: node.js heroku twitter cron

我正在尝试在Heroku上托管我的Twitter机器人,每小时发布一次。但是当我尝试部署时,它给了我这个错误:

`Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch`

我做了一些谷歌搜索并发现当你尝试指定显式端口而不是使用process.env.$PORT时通常会发生这种情况,但我没有在我的代码中指定任何端口,基本上就是这样:

var CronJob = require('cron').CronJob;
new CronJob('0 0 * * * *', function() {
  //tweet once, once an hour
  runTheBot();
}, null, true, 'America/New_York');

其中runTheBot()使用Twit发出一些API请求。

有趣的是,如果我将cron作业设置为超过60秒运行,比如说每10秒一次('* / 10 * * * * *'),它就能正常工作。如果我每分钟运行一次('0 * * * * *'),它甚至可以工作。

这是我的Procfile:

web: node index.js -p $PORT

Heroku与此cron库不兼容吗?我应该使用Heroku Scheduler吗?

1 个答案:

答案 0 :(得分:0)

我通过将个人资料中的流程类型从web更改为worker来解决了这个问题。由于Heroku由于某种原因默认将它设置为0,我还必须手动将工作人员的dynos从0扩展到1。