Skip to content

Instantly share code, notes, and snippets.

@guileen
Created April 15, 2015 02:39
Show Gist options
  • Save guileen/c7fc7c019dedf1e52699 to your computer and use it in GitHub Desktop.
Save guileen/c7fc7c019dedf1e52699 to your computer and use it in GitHub Desktop.
Nodejs cluster example
var cluster = require('cluster');
var numCPUs = require('os').cpus().length;
if(cluster.isMaster) {
console.log('run master, cpus:', numCPUs);
// Fork workers.
function forkWorkers() {
for (var i = 0; i < numCPUs; i++) {
var worker = cluster.fork();
worker.on('message', function(msg) {
console.log('on message', msg);
if(msg.cmd == 'reloadAll') {
console.log('reloadAll');
killWorkers();
forkWorkers();
}
});
}
}
function killWorkers() {
for (var i = 0; i < cluster.workers; i++) {
cluster.workers[i].kill();
}
}
forkWorkers();
cluster.on('exit', function(worker, code, signal) {
console.log('worker ' + worker.process.pid + ' died');
});
} else {
// workers function
// require('./server')
require('./app').listen(3000);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment