Я использую NodeJS с PhantomJS. Моя цель - создать 4x узловые узлы с узловым кластером, каждый из которых имеет 2 ребенка-фантома. И мой код выглядит следующим образом:Узел кластера не создает фантомные экземпляры в соответствующем рабочем столе
cluster.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
Почему фантомные экземпляры не привязаны к соответствующему работнику?
Что происходит, если вы увеличиваете тайм-аут 'setInterval' до 10000 или 15000? Начало двух экземпляров может быть слишком медленным в течение 5 секунд или даже 10 секунд. –
Все тот же результат :( – Deepsy
Я бегу узел 0.10.26, и он работает – Maroshii