【问题标题】:what is the difference between defining variables inside or outside the master code in a Nodejs Cluster?在 Nodejs 集群的主代码内部或外部定义变量有什么区别?
【发布时间】:2019-02-28 04:32:51
【问题描述】:

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

 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  
 }

在任何地方声明变量是一样的吗,每个worker都有自己独立的变量副本?

【问题讨论】:

    标签: node.js node-cluster


    【解决方案1】:

    集群打算让父进程将自己分叉成子进程。进程不共享变量(甚至是全局变量),因此您必须通过其他方式共享状态。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-10
      • 2016-11-13
      • 1970-01-01
      • 2016-04-29
      相关资源
      最近更新 更多