Node.js进程,在Docker容器中运行,内存不足时将挂起而不退出或抛出
最近我偶然发现了一个有趣的问题:我有一个Express Node.js应用程序,我正在使用Docker image将其部署到AWS ECS。然而,它部署正确,运行状况检查失败,在检查日志后,我发现该进程在Express初始化期间无限期挂起,没有给出任何错误 起初,我认为这是由于某些网络配置失误造成的,这阻止了进程在HTTP端口上启动侦听器,但经过非常繁琐的检查,我注意到,默认内存限制已经到位,只有50MB的RAM,而进程实际上需要多一点。在增加内存限制后,它开始正常工作Node.js进程,在Docker容器中运行,内存不足时将挂起而不退出或抛出,node.js,amazon-web-services,docker,amazon-ecs,Node.js,Amazon Web Services,Docker,Amazon Ecs,最近我偶然发现了一个有趣的问题:我有一个Express Node.js应用程序,我正在使用Docker image将其部署到AWS ECS。然而,它部署正确,运行状况检查失败,在检查日志后,我发现该进程在Express初始化期间无限期挂起,没有给出任何错误 起初,我认为这是由于某些网络配置失误造成的,这阻止了进程在HTTP端口上启动侦听器,但经过非常繁琐的检查,我注意到,默认内存限制已经到位,只有50MB的RAM,而进程实际上需要多一点。在增加内存限制后,它开始正常工作 为什么它挂起时没有给出
- 为什么它挂起时没有给出任何错误。发生这种情况时,节点进程是否应该错误退出?
- 我如何防止将来出现此类问题?也就是说,当出现这种情况时,我希望我的流程以有意义的错误终止。
谢谢大家! 我们能得到一些代码吗?这是一个相当复杂的企业应用程序,用带有依赖注入、服务等的TypeScript编写。我不太确定如何在这里发布它,也不确定代码的哪些方面可能与这个问题有关。我希望得到一个更一般的答案或建议,这将引导我走向正确的方向。可能有人在过去有过类似的经历。