chore(mongoose): set some options per #2725 to address high number of open connections, replset connection timeout, and close mongoose connection on process death

This commit is contained in:
Tyler Renelle
2014-02-03 17:05:18 -07:00
parent 4c094ebf47
commit 6a86da316b
4 changed files with 20 additions and 34 deletions
+12 -9
View File
@@ -35,14 +35,18 @@ if (cluster.isMaster && (isDev || isProd)) {
// ------------ MongoDB Configuration ------------
mongoose = require('mongoose');
require('./models/user'); //load up the user schema - TODO is this necessary?
require('./models/group');
require('./models/challenge');
mongoose.connect(nconf.get('NODE_DB_URI'), {auto_reconnect:true}, function(err) {
if (err) throw err;
logging.info('Connected with Mongoose');
var mongooseOptions = !isProd ? {} : {
replset: { socketOptions: { keepAlive: 1, connectTimeoutMS: 30000 } },
server: { socketOptions: { keepAlive: 1, connectTimeoutMS: 30000 } }
};
mongoose.connect(nconf.get('NODE_DB_URI'), mongooseOptions, function(err) {
if (err) throw err;
logging.info('Connected with Mongoose');
});
// load schemas & models
require('./challenge');
require('./group');
require('./user');
// ------------ Passport Configuration ------------
var passport = require('passport')
@@ -63,7 +67,6 @@ if (cluster.isMaster && (isDev || isProd)) {
done(null, obj);
});
// Use the FacebookStrategy within Passport.
// Strategies in Passport require a `verify` function, which accept
// credentials (in this case, an accessToken, refreshToken, and Facebook
@@ -135,7 +138,7 @@ if (cluster.isMaster && (isDev || isProd)) {
app.use('/api/v1', require('./routes/apiv1').middleware);
app.use('/export', require('./routes/dataexport').middleware);
app.use(utils.crashWorker(server));
app.use(utils.crashWorker(server,mongoose));
app.use(utils.errorHandler);
require('./routes/apiv2.coffee')(swagger, v2);