我开始使用节点集群包,我很快发现主节点和集群之间没有共享数据。让我们举个例子:
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);
}
如何定义可在主服务器和集群之间共享的变量?
答案 0 :(得分:1)
集群只需打开更多进程(子进程)就可以将它们列出到同一个端口。为了沟通你需要所以在他们之间发送按摩。这是一个例子 node-cluster-messaging.js