Heroku启动超时(错误R10)

时间:2012-05-06 22:45:30

标签: heroku

每次启动我的应用程序时,如果没有:

,则无法超过60秒
2012-05-06T22:41:11+00:00 heroku[web.1]: Stopping process with SIGKILL
2012-05-06T22:41:11+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2012-05-06T22:41:11+00:00 heroku[web.1]: Process exited with status 137
2012-05-06T22:41:12+00:00 heroku[web.1]: State changed from starting to crashed

这是我的Procfile

web: bundle exec thin start -p $PORT

任何回复都将受到全面评价。

6 个答案:

答案 0 :(得分:13)

如果您的应用由于“正常”原因需要的时间超过60秒,您可以使用https://github.com/dblock/heroku-forward在60秒的启动时限内工作。

答案 1 :(得分:10)

解决方案是我忘记在我的Procfile行中包含-p $ PORT。

Proc文件中的

更改:

web: bundle exec thin start

web: bundle exec thin start -p $PORT

为我修好了。

答案 2 :(得分:3)

Heroku的启动超时也让我感到困惑。我阅读了几篇关于如何解决这个问题的博客文章,并最终将一些解决方案自动化为一个宝石。

为减少部署时的启动时间,您可以修剪启动时加载的宝石(这并不意味着您必须从应用程序中修剪它们,只需启动时间。)

gem_bench会在启动时评估哪些宝石可能不需要

我有一个大约250个宝石的应用程序,并且能够添加:require =>其中约有60个是假的,具有戏剧性的效果。

https://github.com/acquaintable/gem_bench

免责声明:我是这个开源ruby gem的作者。我写了宝石来帮助自己解决这个问题:Heroku上的60秒超时。

答案 3 :(得分:1)

您好我面临同样的问题。我通过增加/config/unicorn.rb中的超时来解决此问题 在/config/unicorn.rb

中将超时15更改为超时20

答案 4 :(得分:0)

在使用nodejs的情况下,我解决了此问题,添加了一个包含内容的Procfile文件: worker:节点index.js并将其推送到heroku。 之后,请确保禁用“ web npm start”检查,然后打开“ worker node index.js”检查,如下图所示

herokuResourcesConfig

答案 5 :(得分:0)

在Heroku上部署Node应用程序时遇到相同的错误。

我通过添加一个Procfile解决了它。

web: node app.js

它告诉Heroku如何启动应用程序。

该错误是由于Heroku无法配置在哪个PORT上运行该应用程序。

可以通过为Heroku指定PORT来解决,即:在app.js中

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
    console.log(`App is running on port ${ PORT }`);
});