2017-11-17 6 views
0

노드 클러스터 패키지를 사용하기 시작했으며 마스터와 클러스터간에 데이터가 공유되지 않는 것으로 나타났습니다. 이 예를 들어 보겠습니다 :노드 클러스터가 마스터와 클러스터간에 데이터를 공유합니다.

var cluster = require('cluster'); 
var numCPUs = require('os').cpus().length; 

var my_array = []; 

if(cluster.isMaster) { 
    for (var i = 0; i < numCPUs && i < 8; i++) { 
     cluster.fork(); 
    } 

    my_array.push('test'); 

    cluster.on('exit', function(worker, code, signal) { 
     console.log('worker ' + worker.process.pid + ' died'); 
    }); 
} else { 
    setInterval(function() { 
     console.log(my_array); // my_array is always empty 
    }, 500); 
} 

어떻게 마스터와 클러스터간에 공유 할 수있는 변수를 정의합니까?

+1

[message] (https://nodejs.org/api/cluster.html#cluster_event_message)? –

답변

1

클러스터는 같은 포트에 나열하는 방식으로 더 많은 프로세스 (하위 프로세스)를 엽니 다. 의사 소통을 위해서는 그들 사이에 마사지를 보내야합니다. 여기에 예제가 있습니다 node-cluster-messaging.js