我正在集群模式下运行 NodeJS 应用程序:
pm2 start server.js -i max
假设我有 2 个簇(0 和 1)... 我们的应用程序是一个运行 Express 的简单 NodeJS 后端应用程序。然而,有时会出现未处理的错误,导致应用程序宕机(因此 PM2 需要重新启动)。然而,我注意到,每当 PM2 在集群模式下重新启动时,它都会暂时关闭所有集群以重新启动它们……但我只需要重新启动工作线程,而不是重新启动所有未出错的线程。
我们的应用程序需要几秒钟“重新启动”才能接受连接(需要连接到数据库)。因此,我们不希望重新启动的集群在重新启动后大约 30 秒后才“在线”。我们尝试使用
--listen-timeout 30000
但问题似乎仍然是所有集群都在重新启动
备注:
我创建了一个假端点,其中有一个硬编码的未处理错误要测试。每当我到达此端点并重新检查状态
pm2 status
时,它都会显示所有集群的“重启数量”值都在增加。
我们在 PM2 5.2.0 上遇到了这个问题,也尝试更新到 5.3.0,但没有什么区别。
我们尝试使用 --listen-timeout 30000 但问题似乎仍然是所有集群都在重新启动
该应用程序已实现 try/catch 错误处理程序,但重点是 PM2 并未按我们的预期工作。万一我们错过了一个错误,我们需要 PM2 来避免一切崩溃。
我也有同样的问题!你能找到解决办法吗?