每次启动我的应用程序时,如果没有:
,则无法超过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
任何回复都将受到全面评价。
答案 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”检查,如下图所示
答案 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 }`);
});