在Openshift上热部署node.js应用程序时会发生什么?

时间:2014-12-29 20:17:46

标签: javascript node.js openshift

从我能找到的documentation,我不明白在Openshift中部署node.js应用程序时究竟发生了什么。

以下假设是否正确?

  1. 现有的node.js应用程序已停止。
  2. 启动带有新推送代码的新node.js应用程序。
  3. 现有node.js应用程序内存中的内容不会转移到新应用程序中。
  4. 如果这些应用程序使用数据库(在其他盒式磁带中),则不会重新启动此数据库。现有应用程序关闭其连接,新应用程序创建一个新应用程序。
  5. 因此,如果您需要运行新推送的node.js代码所需的数据库脚本,则不建议使用热部署。

2 个答案:

答案 0 :(得分:1)

我试图从openhift上的热部署的一些官方来源找到很多文档,但我在任何地方都看不到这些lines

我不是说我真的在回答你的问题,但这里有关于热门部署方法的内容,每个人都必须阅读this

它只是创建一个监视js文件更改的服务器, 现在,只要你修改js,代码就会注意到并用新代码替换本地js。任何现有请求将继续使用旧代码,而任何新传入请求将使用新代码。所有这些都没有关闭服务器,反弹任何请求,过早地杀死任何请求,甚至依赖智能负载均衡器。

我认为openshift在启用热部署标记时会做同样的事情(我不确定,但情况可能并非如此)。现在在这种情况下,回到你的问题:

  
      
  1. 停止现有的node.js应用程序,并启动带有新推送代码的新node.js应用程序:

  2.   
  3. 如果这些应用程序使用数据库(在其他盒式磁带中),则不会重新启动此数据库。现有的申请结束了   连接,新应用程序创建一个新应用程序:

  4.   

答案 1 :(得分:0)

我认为回答这个问题的最好方法是转到source

作为构建生命周期(git commit)的一部分使用的post_deploy控制操作是调用它的方法。

根据盒式磁带的配置方式(如果使用npm以及使用主管),盒式磁带的行为会有所不同。如果使用NPM,则重新启动磁带,如果您未使用主管,磁带将重新启动。只有当您使用NPM并且主管正在运行时,热部署功能才会按照documentation中的说明运行。

  

热部署应用程序可使您的更改生效,而无需重新启动应用程序盒,从而提高部署速度并最大限度地减少应用程序停机时间。