我有一个内存中的 javascript 对象,我在节点启动时对其进行初始化。我正在使用集群模块在多个核心上运行此节点应用程序。当我收到一个 http 请求时,它被一个工作线程接收,改变了 javascript 对象的值。我需要确保所有工作线程都反映了这个更改的值?我该怎么做?
user441407
问问题
489 次
1 回答
0
子进程不能共享变量,因为每个工作进程都是使用child_process.spawn
.
使用像Redis和node-redis这样的快速、内存中的键值数据库来执行此操作。
这样,当您的应用程序启动时,您可以序列化您的 JS 对象并将其分配给 Redis 键。然后,工作人员将对同一个键执行所有读取更新操作。我个人推荐这种方式。
于 2013-07-29T11:02:07.780 回答