2017-11-17 7 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

[メッセージ](https://nodejs.org/api/cluster.html#cluster_event_message)? –

答えて

1

クラスタは、同じポートにリスティングするプロセス(子プロセス)を開くだけです。コミュニケータに連絡するには、マッサージを送る必要があります。ここに例があります node-cluster-messaging.js

関連する問題