Highload
- 2 ответа
- 0 вопросов
0
Вклад в тег
var config = {
numWorkers: require('os').cpus().length,
refreshTime: 1000, // Milliseconds between data refreshes.
waitTime: 90, //Время в секундах когда пользователь считается оффлайн
worker: {
port: XXXX,
setNoDelay: true,
mongoUrl: 'mongodb://XXX:XXXXXXXX@/tmp/mongodb-270XX.sock'
}
};
cluster.setupMaster({
exec: "worker.js"
});
for (var i = 0; i < config.numWorkers; i++)
(function(worker) {
worker.on('message', function(data) {
switch(data.routeType){ // мы в сообщениях преедавали массив , routeType - переменная масисива которую мы ввели и в нашем случае она обозначала какоето действие
case 'act1':
// Что то делаем, выполняем какойто код массив data может содержать еще какието элементы котоыре вы будете обрабатывать
break;
case 'act1':
// Второе действие
break;
default:
break;
}
});
worker.on('exit', function(code, signal) {
console.log('Worker died: ', worker.process.pid, code, signal); // Сообщаем в консоль что у нас подох один из потоков
});
})(cluster.fork({WORKER_CONFIG: JSON.stringify(config.worker)})); // Форкаем потоки
process.on('message', function(data){ // получаем сообщение от головного потока
switch(data.routeType){
case 'myMess1':
// Выполняем свой код
break;
case 'myMess2':
// Второе действие
break;
default:
break;
}
}
var procMess = {
routeType: 'myMess',
//.......... любые ваши данные которые нужно передать
};
process.send(procMess); // Отправка данных в головной поток