如何防止pm2在启动时重启应用程序错误

时间:2017-10-05 13:19:42

标签: node.js error-handling initialization pm2 process-management

上下文

我已经为组成我的Node.js应用程序的一些模块添加了配置验证。当它们启动时,每个人都检查它是否正确配置并且可以访问它所需的资源(例如,可以写入目录)。如果它检测到某些内容有问题,它会向自己发送一个SIGINT(process.pid),以便正常关闭应用程序(关闭http服务器,关闭与Redis的可能连接,依此类推)。我希望操作员在启动应用程序之前意识到存在配置和/或环境问题并进行修复。

我使用pm2来启动/停止/重新加载应用程序,我喜欢pm2会在以后崩溃的情况下自动重启它,但我不希望它在上面的场景中重启我的应用程序,因为根本原因只需重新启动应用程序就不会消除,因此pm2将继续重新启动max_restarts(默认为pm2中的10)。

问题

如何防止pm2在启动时中止时重新启动我的应用程序?

我知道pm2有--wait-ready选项,但鉴于我们讨论的是具有异步启动逻辑的多个模块,我发现很难确定process.send('ready')的位置/时间。

可能的解决方案

我正在考虑让我所有的模块发出一个内部的“准备好”事件并连接整个事情链接“准备好”的事件,最后能够将“准备好”发送到pm2,但我想先问一下如果那将是一点点过度工程。

谢谢,

罗杰

0 个答案:

没有答案