gpt4 book ai didi

node.js - NodeJS 有没有办法在多个worker 之间共享变量?

转载 作者:太空宇宙 更新时间:2023-11-03 22:47:38 25 4
gpt4 key购买 nike

我正在运行一个 Node.js 应用程序。当它启动时,我为每个核心创建一个工作线程。我需要创建某种在我创建的每个工作人员之间共享的全局变量。有什么办法可以做到这一点吗?

最佳答案

对于一小组变量,您可以使用自定义环境生成工作人员。例如:

// On the master when creating the process:
cluster.fork({ GLOBAL_VAR_A: 12345 });

// On workers:
var globalA = parseInt(process.env.NODE_GLOBAL_VAR_A, 10);

我在这里放置了一个 parseInt 来突出显示环境变量是字符串。不过,这应该只用于少数变量,因为它的扩展性显然很差。

但是有两个重要的选择

  • 配置文件:很多时候,您想要共享的数据实际上是配置。配置可以简单地存储在文件中,并且所有工作人员将读取相同的数据。
  • 数据库:另一种是通过数据库共享状态。例如,如果您确实需要,redis pubsub 允许您在工作线程之间维护同步变量。

正如 alex 的回答中提到的, native 集群 IPC 也是一个选项,但实际上是用于主 Node 和工作 Node 之间的通信。您不希望主进程执行太多操作,以避免引发未捕获异常的可能错误。 Zeromq 等也可能值得一看。

关于node.js - NodeJS 有没有办法在多个worker 之间共享变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21892985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com