0

如果我使用更新在 Heroku 上运行的应用程序git push并且该应用程序在多个 dynos 上运行 - Heroku 如何运行升级过程?

  • 同时使用所有测功机?
  • 相继?
  • ...?

换句话说:我的“集群”会出现停机时间,还是会有一个小的时间范围内我的应用程序的不同版本并行运行,或者......?

4

2 回答 2

2

不能告诉内部状态,但我所经历的是

  • 代码推送完成
  • 代码编译(slug 已编译)
  • 之后,所有测功机都会获得最新代码并重新启动。(重新启动最多需要 30 秒左右,在此期间所有请求都进入队列)。

所以不会有停机时间,因为在重新启动过程中,所有请求都会排队,我认为在部署后不会运行多个版本的代码。

于 2012-12-23T06:08:28.143 回答
2

每个人都说更新 Heroku 应用程序时“没有停机时间”,但对于您的应用程序来说,这可能不是真的。

我最近开发了一个大小合理的 Rails 应用程序,该应用程序至少需要 25 秒才能启动,并且通常无法在 Heroku 允许的 30 秒内启动,然后才会将错误返回给您的客户。

在这整个过程中,您的用户都在等待某些事情发生。30秒是很长的时间,他们可能没有足够的耐心等待。

有人曾经告诉我,如果你有超过 1 个测功机,它们会单独重新启动,以免停机。这不是真的 - Heroku 停止所有测功机,然后启动所有测功机。

任何时候都不会在 Heroku 上运行您的应用程序的 2 个版本

于 2012-12-25T00:45:54.730 回答