我将 NodeJS 与 PhantomJS 一起使用。我的目标是使用节点集群创建 4 个节点实例,每个实例都有 2 个幻像子节点。我的代码如下所示:
集群.js:
var numCPUs = 4;
if (cluster.isMaster) {
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', function(worker, code, signal) {
console.log('worker ' + worker.process.pid + ' died');
cluster.fork();
});
} else {
require("./app");
}
App.js 看起来像这样:
var instances = [];
var phantom = require('phantom');
function InstanceManager(instCount) {
for (var i = 0; i < instCount; i++) {
phantom.create(function(phantomInstance) {
instances.push({
cycle: 0,
locked: false,
instance: phantomInstance
});
});
}
}
InstanceManager(2);
setInterval(function() {
var i = 0;
console.log('--' + instances.length);
}, 5000);
因此,cluster.js
在节点控制台中运行预期输出后,每 5 秒应该是:
--2
--2
--2
--2
但看起来像这样:
--0
--0
--0
--8
为什么幻影实例没有附加到正确的工作人员?