22

每次我启动我的应用程序时,如果没有以下内容,它就无法超过 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

任何回应将不胜感激。

4

7 回答 7

15

如果您的应用出于“好的”原因确实需要超过 60 秒,您可以使用https://github.com/dblock/heroku-forward解决 60 秒的启动时间限制。

于 2012-12-14T05:37:19.033 回答
10

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

在 Procfile 更改中:

web: bundle exec thin start

web: bundle exec thin start -p $PORT

那为我修好了。

于 2014-02-04T18:41:36.407 回答
3

Heroku 的启动超时也让我感到难过。我阅读了几篇关于如何绕过它的博客文章,最终将一些解决方案自动化成一个 gem。

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

gem_bench评估启动时可能不需要哪些 gem。

我有一个包含大约 250 颗宝石的应用程序,并且能够将 :require => false 添加到其中的大约 60 颗宝石中,效果显着。

https://github.com/acquaintable/gem_bench

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

于 2013-04-23T21:37:30.593 回答
1

嗨,我遇到了同样的问题。我已经通过增加 /config/unicorn.rb 中的超时时间来解决这个问题,将 /config/unicorn.rb 中的 超时时间 15 更改为超时 20

于 2014-03-14T07:06:18.550 回答
0

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

herokuResourcesConfig

于 2019-04-26T05:53:42.310 回答
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 }`);
});
于 2020-02-07T05:31:49.523 回答
0

错误 R10(启动超时)是 heroku 的这个隐藏部分,允许您增加部署时间。

https://tools.heroku.support/limits/boot_timeout

于 2022-01-02T20:42:13.207 回答