Skip to content

Instantly share code, notes, and snippets.

@AndreasMadsen
Created December 3, 2011 19:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AndreasMadsen/1427960 to your computer and use it in GitHub Desktop.
Save AndreasMadsen/1427960 to your computer and use it in GitHub Desktop.
cluster restart
var cluster = require("cluster");
cluster.restart = function (callback) {
var oldWorkers = [];
cluster.eachWorker(function (worker) {
oldWorkers.push(worker);
});
function restartWorker (oldWorker) {
worker.on('disconnect', function () {
var newWorker = worker.fork();
newWorker.on('listening', function () {
if (oldWorkers.length === 0) {
callback && callback();
} else {
restartWorker(oldWorker.pop());
}
});
});
worker.disconnect();
}
restartWorker(oldWorker.pop());
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment