0

Heroku 有很好的实用程序来管理 web dynos。当我们做一个小版本时,我们使用Preboot优雅地将 web dynos 切换到新版本。

然而,如果你想缩小你的网络测功机,没有优雅的方法可以做到这一点。理想情况下,我们可以标记一个 web dyno,以便 Heroku Scheduler 在发送 SIGTERM 前 3 分钟停止向它发出新请求。

因此,如果我有 6 个 dynos 正在运行,但在办公时间之外我想要ps:scale web=2,它会将 SIGTERM 发送到其他 4 个。如果在缓慢的时间内有一个落后者被路由到这 4 个中的一个(而不是剩下的 2 个),他们会体验由 SIGTERM 导致的崩溃。

有没有办法优雅地缩小网络测功机?

4

1 回答 1

0

正确处理 SIGTERM 是优雅关闭的推荐方法,请参阅https://devcenter.heroku.com/articles/dynos#graceful-shutdown-with-sigterm。请注意,这与预启动期间发生的关机过程相同。因此,当您的进程收到 SIGTERM 时,它应该停止响应请求,并在 30 秒后完成对当前请求的响应,如果该进程尚未退出,则该进程被强制 SIGKILL'd。没有执行滚动缩减的内置方法,您必须在 Heroku API 上编写自己的接口来实现这一点。

于 2020-08-11T10:47:28.927 回答