了解node.js pm2启动选项

时间:2015-10-30 14:51:26

标签: node.js pm2

pm2具有以下命令行选项:

  startOrRestart <json>
  startOrReload <json>
  startOrGracefulReload <json>

但它们之间有什么区别?

据我所知,如果应用程序尚未启动,则启动所有应用程序。因此,让我们考虑应用程序(HTTP服务器)正在运行。

我假设 restart 强制应用程序停止并在之后重新启动它, reload 将停止接受新连接,等待处理所有连接,然后重新启动应用程序。不同之处在于重新加载没有停机或中止连接,但除此之外,它的行为与 restart 一样(即应用了代码更改)。

我的假设是否正确? startOrGracefulReload 有何不同?

1 个答案:

答案 0 :(得分:3)

如果应用程序尚未运行,这三个命令将启动您的应用程序,因此,让我们集中讨论它已经运行的情况。

startOrRestart :它会停止JSON文件中的所有应用程序,然后所有应用程序将再次启动。你会有停机时间。

startOrReload :您可以阅读here

  

与重启相反,重启,重启,重启   实现了0秒的停机时间重新加载。

因此,主要区别在于您没有停机时间。

startOrGracefulReload :同样,您可以阅读更多here

  

有时您可能会遇到很长时间的重新加载或重新加载   没有工作(回退重启)意味着你的应用仍然有   退出时打开连接。或者您可能需要关闭所有数据库   连接,清除数据队列或其他任何内容。

     

要解决此问题,您必须使用正常重新加载。

因此,基本上pm2要求您的应用程序在重新加载之前退出,以防您有数据库连接或挂起请求等依赖项。您必须指定应用程序所需的时间才能关闭所有现有连接。然后,一个新流程将开始,当这个新流程显示&#34; 嘿!我还活着!&#34;,那么你的旧流程将会结束。