pm2具有以下命令行选项:
startOrRestart <json>
startOrReload <json>
startOrGracefulReload <json>
但它们之间有什么区别?
据我所知,如果应用程序尚未启动,则启动所有应用程序。因此,让我们考虑应用程序(HTTP服务器)正在运行。
我假设 restart 强制应用程序停止并在之后重新启动它, reload 将停止接受新连接,等待处理所有连接,然后重新启动应用程序。不同之处在于重新加载没有停机或中止连接,但除此之外,它的行为与 restart 一样(即应用了代码更改)。
我的假设是否正确? startOrGracefulReload 有何不同?
答案 0 :(得分:3)
如果应用程序尚未运行,这三个命令将启动您的应用程序,因此,让我们集中讨论它已经运行的情况。
startOrRestart :它会停止JSON文件中的所有应用程序,然后所有应用程序将再次启动。你会有停机时间。
startOrReload :您可以阅读here:
与重启相反,重启,重启,重启 实现了0秒的停机时间重新加载。
因此,主要区别在于您没有停机时间。
startOrGracefulReload :同样,您可以阅读更多here:
有时您可能会遇到很长时间的重新加载或重新加载 没有工作(回退重启)意味着你的应用仍然有 退出时打开连接。或者您可能需要关闭所有数据库 连接,清除数据队列或其他任何内容。
要解决此问题,您必须使用正常重新加载。
因此,基本上pm2
要求您的应用程序在重新加载之前退出,以防您有数据库连接或挂起请求等依赖项。您必须指定应用程序所需的时间才能关闭所有现有连接。然后,一个新流程将开始,当这个新流程显示&#34; 嘿!我还活着!&#34;,那么你的旧流程将会结束。