PM2 集群模式 - 所有集群在出错时重新启动

问题描述 投票:0回答:1

我正在集群模式下运行 NodeJS 应用程序:

pm2 start server.js -i max

假设我有 2 个簇(0 和 1)... 我们的应用程序是一个运行 Express 的简单 NodeJS 后端应用程序。然而,有时会出现未处理的错误,导致应用程序宕机(因此 PM2 需要重新启动)。然而,我注意到,每当 PM2 在集群模式下重新启动时,它都会暂时关闭所有集群以重新启动它们……但我只需要重新启动工作线程,而不是重新启动所有未出错的线程。

我们的应用程序需要几秒钟“重新启动”才能接受连接(需要连接到数据库)。因此,我们不希望重新启动的集群在重新启动后大约 30 秒后才“在线”。我们尝试使用

--listen-timeout 30000
但问题似乎仍然是所有集群都在重新启动

备注:

  • 在节点 18.7.0 上运行
  • Nginx 反向代理

我创建了一个假端点,其中有一个硬编码的未处理错误要测试。每当我到达此端点并重新检查状态

pm2 status
时,它都会显示所有集群的“重启数量”值都在增加。

我们在 PM2 5.2.0 上遇到了这个问题,也尝试更新到 5.3.0,但没有什么区别。

我们尝试使用 --listen-timeout 30000 但问题似乎仍然是所有集群都在重新启动

该应用程序已实现 try/catch 错误处理程序,但重点是 PM2 并未按我们的预期工作。万一我们错过了一个错误,我们需要 PM2 来避免一切崩溃。

node.js backend pm2
1个回答
0
投票

我也有同样的问题!你能找到解决办法吗?

© www.soinside.com 2019 - 2024. All rights reserved.