 
      
    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);	    // Отправка данных  в головной поток