想象一下构建一个bot,它将对话框作为nodejs中的promise链处理
bot.ask('question')
.then(answer => { ...someDataAndCode })
.then(somethingElse)
.then(etc);
现在,在部署新版本时,所有的承诺都消失了,当然,你已经挂了机器人没有回复的对话框。问题是:
答案 0 :(得分:0)
我不熟悉任何持久的承诺模块,我认为保持每个链式承诺的状态是非常困难的。
但无论如何,我会采用另一种方法解决你的问题。我不会杀死以前的服务器,但我会在不同的端口运行新的更新版本。然后我将配置反向代理(我假设您使用类似nginx的路由将流量路由到节点)以将所有新用户发送到新版本的节点服务器。
当旧节点服务器完成其工作并且即使最后一个用户已经离开时,您也可以终止该服务器。
PS所有这一切都取决于你使用反向代理的假设,你不会在问题中说明,所以我的解决方案不适合你的项目