重新加载 pm2 后,我会丢失存储在 Node.js 项目异步队列中的数据吗?

will I lose data stored in async queue in Node.js project after pm2 reload?

目前,我正在使用具有异步队列 运行 吨数据的实时 node.js 服务器。

如果我 运行 pm2 重新加载,我会丢失所有排队的数据吗?

我无法测试会发生什么,因为它是实时服务器。

期待听到您的体验!

回答:我相信你会丢失数据,因为存储数据的对象在进程重新启动时丢失了。

async's queue documentation 开始,队列是一个对象,然后被推送到内存中,因此如果重新启动相应的节点进程,与其关联的内存也会重新启动。

pm2 reload 本质上是重新启动,但优雅地保持至少一个进程运行以防止零停机时间。

来自关于 pm2 restartpm2 reload 的细微差别的问题 ,

With reload, pm2 restarts all processes one by one, always keeping at least one process running.