30

我们在 Heroku 上运行 NodeJS 服务器。我们想知道如果应用程序崩溃,heroku 是否会重新启动应用程序。免费版和付费版之间还会有什么不同的行为吗?

4

1 回答 1

44

它会。几次,然后“冷却”十分钟再试一次。从文档:

Heroku 的测功机重启策略是通过每十分钟产生一次新的测功机来尝试重新启动崩溃的测功机。这意味着如果您推送阻止您的应用程序启动的错误代码,您的应用程序 dynos 将启动一次,然后重新启动,然后冷却十分钟。在长时间运行的网络或工作进程偶尔崩溃的正常情况下,测功机将立即重新启动,而无需您进行任何干预。如果您的测功机连续两次崩溃,它将在系统重试之前保持停机十分钟。

文档:https ://devcenter.heroku.com/articles/dynos#automatic-dyno-restarts

编辑关于免费测功机:重启行为是一样的。然而,有一种叫做“Dyno Idling”的东西只发生在免费的测功机中。基本上这意味着如果您的测功机在 1 小时内没有收到任何请求,它将“进入睡眠状态”,下一个请求将“唤醒它”,这将导致下一个请求稍微延迟。仅当您web的应用程序有 1 个免费测功机时才会发生这种情况。

为了避免这种情况,要么有 2 个测功机(然后它们不会闲置,但你会为一个付费),或者每(比如)30 分钟让“某物”轮询你的网络测功机。比如说 pingdom。

文档:https ://devcenter.heroku.com/articles/dynos#automatic-dyno-restarts

于 2013-10-09T07:33:32.030 回答