forkWorker function, pipe new worker output to log

v1.18.x
barisusakli 10 years ago
parent 4c8287251a
commit bce96d04c7

@ -166,9 +166,7 @@ Loader.addClusterEvents = function(callback) {
console.log('[cluster] Spinning up another process...'); console.log('[cluster] Spinning up another process...');
var wasPrimary = parseInt(worker.id, 10) === Loader.primaryWorker; var wasPrimary = parseInt(worker.id, 10) === Loader.primaryWorker;
cluster.fork({ forkWorker(wasPrimary);
handle_jobs: wasPrimary
});
} }
}); });
@ -177,31 +175,32 @@ Loader.addClusterEvents = function(callback) {
}); });
callback(); callback();
} };
Loader.start = function(callback) { Loader.start = function(callback) {
var output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true }),
worker;
console.log('Clustering enabled: Spinning up ' + numProcs + ' process(es).\n'); console.log('Clustering enabled: Spinning up ' + numProcs + ' process(es).\n');
for(var x=0;x<numProcs;x++) { for(var x=0; x<numProcs; ++x) {
// Only the first worker sets up templates/sounds/jobs/etc forkWorker(x === 0);
worker = cluster.fork({
cluster_setup: x === 0,
handle_jobs: x === 0
});
// Logging
if (silent) {
worker.process.stdout.pipe(output);
worker.process.stderr.pipe(output);
}
} }
if (callback) callback(); if (callback) {
callback();
}
}; };
function forkWorker(isPrimary) {
var worker = cluster.fork({
cluster_setup: isPrimary,
handle_jobs: isPrimary
});
if (silent) {
worker.process.stdout.pipe(output);
worker.process.stderr.pipe(output);
}
}
Loader.restart = function(callback) { Loader.restart = function(callback) {
// Slate existing workers for termination -- welcome to death row. // Slate existing workers for termination -- welcome to death row.
Loader.shutdown_queue = Loader.shutdown_queue.concat(Object.keys(cluster.workers)); Loader.shutdown_queue = Loader.shutdown_queue.concat(Object.keys(cluster.workers));
@ -220,7 +219,7 @@ Loader.notifyWorkers = function (msg) {
Object.keys(cluster.workers).forEach(function(id) { Object.keys(cluster.workers).forEach(function(id) {
cluster.workers[id].send(msg); cluster.workers[id].send(msg);
}); });
} };
nconf.argv().file({ nconf.argv().file({

Loading…
Cancel
Save