- In Master
- Worker Live: 1
- Worker Live: 2
- Worker Live: 3
- In Worker 1
- Message from server: Bazingaa 1
- In Worker 2
- In Worker 3
- In Master
- Worker Live: 1
- Worker Live: 2
- Worker Live: 3
- In Worker 1
- In Worker 2
- Message from server: Bazingaa 1
- In Master
- In Worker 1
- Message from server: Bazingaa 1
- In Worker 2
- In Worker 3
please help me figure out whats happening behind the scenes.
sorry for the ambiguity..
var cluster = require('cluster');
if(cluster.isMaster){
console.log('In Master');
for(var i = 0; i < 3 ; i++) {
cluster.fork();
}
cluster.on('online',function(worker){
console.log('Worker Live:',worker.id);
});
cluster.workers[1].send('Bazingaa');
process.on('SIGINT', function () {
for (var id in cluster.workers) {
cluster.workers[id].send('mySIGINT');
}
cluster.disconnect();
process.stdout.write('Received SIGINT, forwarded to workers', function () {
process.exit(0);
});
});
} else {
console.log('In Worker',cluster.worker.id);
var interval = setInterval(function () {
console.log('worker ' + cluster.worker.id + ' alive');
}, 1000);
process.on('message',function(msg){
if (msg === 'mySIGINT') {
console.log('Master wants me to exit');
setTimeout(function () {
// will cause process to exit, no outstanding operations
clearInterval(interval);
}, 2500);
} else {
console.log('Message from server:', msg, cluster.worker.id);
}
});
process.on('exit', function () {
console.log('worker ' + cluster.worker.id + ' exiting');
});
process.on('SIGINT', function () {
console.log('Received SIGINT as child, ignoring');
});
}