如果应用程序崩溃,heroku是否重新启动NodeJS服务器?

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

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

Heroku的dyno重新启动策略是尝试通过每10分钟产生一次新的dynos重新启动坠毁的dynos。 这意味着,如果你推送不良的代码,阻止你的应用程序启动,你的应用程序代码将会启动一次,然后重新启动,然后冷静十分钟。 在正常情况下,长时间运行的networking或工作人员进程偶尔会发生崩溃,测功机将立即重新启动,无需任何干预。 如果您的动力驱动器连续两次碰撞,在系统重试之前,它将停留十分钟。

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

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

为了规避这个问题,要么有2个dynos(然后他们都不会闲置,但是你会付钱买一个),或者每30分钟就有一些东西在你的网上testing。 像pingdom一样,说。

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