Added clusters for zero-downtime.

mongoose auto-reconnect set to true.
This commit is contained in:
Sahat Yalkabov
2014-01-08 01:37:40 -05:00
parent 0e82538dd3
commit b09c8f16ac

22
app.js
View File

@ -1,7 +1,6 @@
/** /**
* Module dependencies. * Module dependencies.
*/ */
var domain = require('domain');
var express = require('express'); var express = require('express');
var fs = require('fs'); var fs = require('fs');
var flash = require('connect-flash'); var flash = require('connect-flash');
@ -26,7 +25,24 @@ var contactController = require('./controllers/contact');
var secrets = require('./config/secrets'); var secrets = require('./config/secrets');
var passportConf = require('./config/passport'); var passportConf = require('./config/passport');
mongoose.connect(secrets.db); if (cluster.isMaster) {
var numCPUs = require('os').cpus().length;
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('disconnect', function(worker, code, signal) {
console.error('worker ' + worker.process.pid + ' died');
cluster.fork();
});
} else {
/**
* Connect to MongoDB.
*/
var opts = { server: { auto_reconnect: true } };
mongoose.connect(secrets.db, opts);
var app = express(); var app = express();
@ -104,4 +120,4 @@ app.get('/auth/tumblr/callback', passport.authorize('tumblr', { failureRedirect:
app.listen(app.get('port'), function() { app.listen(app.get('port'), function() {
console.log('Express server listening on port ' + app.get('port')); console.log('Express server listening on port ' + app.get('port'));
}); });
}