如果应用程序崩溃,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
- 节点:CORS偶尔失败
- 虽然Access-Control-Allow-Credentials没有设置,但我得到一个CORS错误
- Gulp将Node应用程序的dist文件夹部署到Heroku
- 使用NodeJS在Heroku上validationGoogle Sheet API
- 将Heroku-Cli应用程序部署到Heroku
- 允许CORS REST请求到Heroku上的Express / Node.js应用程序
- 未能在git部署节点服务器上推送到heroku
- 看到错误模块未find:“pg-native”在heroku应用程序
- 在Nodejs上获取“Error R10(引导超时) – > Web进程无法在启动后的60秒内绑定到$ PORT”