在Nodejs集群的主代码内部或外部定义变量之间有什么区别?

时间:2018-09-24 15:57:21

标签: node.js node-cluster

我正在使用集群,并试图找出定义变量的最佳方法。

 1 - var config  
 if (cluster.isMaster) {
    2 - var config
    // master code 
    for (var i = 0; i < numCPUs; i++) {
          cluster.fork() 
    }   
 }else{
    // worker code
    3 - var config  
 }

在任何地方声明变量是否相同,每个工作人员将拥有自己的变量独立副本?

1 个答案:

答案 0 :(得分:1)

Cluster打算让父进程将自身派生到子进程中。进程不共享变量(甚至不共享全局变量),因此您必须通过另一种方式共享状态。

您可以让子进程通过.send().on("message")与父进程进行通信。 https://nodejs.org/api/cluster.html#cluster_event_message

如果您想要更简化的方法,请让进程通过memshared之类的方法共享数据库,但是您必须处理其异步特性。 (也许convert it into a promise然后使用async/await?)