Node JS在重新启动时坚持承诺(也许与版本控制)



想象一下构建一个机器人,该机器人作为nodejs

中的承诺链处理对话
bot.ask('question')
    .then(answer => { ...someDataAndCode })
    .then(somethingElse)
    .then(etc);

现在,部署新版本后,所有的承诺都消失了,然后您挂了bot无法回复的对话框。问题是:

  • 是否有任何NPM软件包/方法可以在重新启动之间持续承诺?
  • 以防万一持续存在的承诺更新的逻辑,是否有可以保持持久承诺旧版本的软件包,以便"旧的对话框走旧方式"?

我不熟悉任何持久的承诺模块,我认为保持每个被束缚的诺言的状态将非常困难....

但是,无论如何,我都会遵循另一种方法来解决您的问题。我不会杀死以前的服务器,但是我会在其他端口中运行新的更新版本。然后,我将配置反向代理(我假设您使用nginx之类的东西将流量路由到节点(将所有新用户发送到节点服务器的新版本。

当旧节点服务器完成其工作,甚至最后一个用户已经消失时,您就可以杀死该服务器。

P.S所有这些都取决于您使用的是反向Proxy的假设,这是您在问题中不说明的内容,因此我的解决方案无法适合您的项目

最新更新