来自documentation我发现,我不明白当 node.js
应用程序在 Openshift 中热部署时到底发生了什么。
以下假设是否正确?
- 现有的
node.js
应用程序已停止。 - 使用新推送代码的新
node.js
应用程序已启动。 - 现有
node.js
应用程序内存中的任何内容都不会转移到新应用程序。 - 如果这些应用程序使用数据库(在其他卡式盒中),则不会重新启动该数据库。现有应用程序关闭其连接,新应用程序创建一个新连接。
- 因此,如果您需要运行新推送的
node.js
代码所需的数据库脚本,则不建议进行热部署。
最佳答案
我试图从一些官方资源中找到很多关于在 openshift 上进行热部署的文档,但我没有看到比这些更多的东西 lines任何地方,
我不是说我真的在回答你的问题,但这里有一些关于热部署的方法,每个人都必须阅读this
它只是创建一个服务器来监视你的 js 文件的变化, 现在,任何时候你修改js,代码都会注意到并用新代码替换本地js。任何现有请求将继续使用旧代码,而任何新传入请求将使用新代码。所有这些都不需要关闭服务器、弹回任何请求、过早地终止任何请求,甚至不需要依赖智能负载平衡器。
我猜 openshift 在启用热部署标记时会做同样的事情(我不确定,情况可能并非如此)。现在在这种情况下,回到你的问题:
The existing node.js application is stopped and a new node.js application with the new pushed code is started: NO
If these applications use a database (in other cartridge), this database is not restarted. The existing application closes its connection, and the new application creates a new one: YES
关于javascript - 在 Openshift 上热部署 node.js 应用程序时究竟发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27695405/