| 123456789101112131415161718192021222324252627282930 |
- /**
- * Created by Syed Afzal
- */
- const mongoose = require('mongoose');
- const {log} = require('../utils/helpers/logger');
- exports.connect = (app) => {
- const options = {
- useNewUrlParser: true,
- autoIndex: false, // Don't build indexes
- reconnectTries: 30, // Retry up to 30 times
- reconnectInterval: 500, // Reconnect every 500ms
- poolSize: 10, // Maintain up to 10 socket connections
- // If not connected, return errors immediately rather than waiting for reconnect
- bufferMaxEntries: 0
- }
- const connectWithRetry = () => {
- mongoose.Promise = global.Promise;
- console.log('MongoDB connection with retry')
- mongoose.connect(process.env.MONGODB_URI, options).then(()=>{
- console.log('MongoDB is connected');
- app.emit('ready');
- }).catch(err=>{
- console.log('MongoDB connection unsuccessful, retry after 2 seconds.')
- setTimeout(connectWithRetry, 2000)
- })
- }
- connectWithRetry();
- };
|