2f750eb4f7
Signed-off-by: Afzal <sah.afzal@gmail.com>
31 lines
1.0 KiB
JavaScript
31 lines
1.0 KiB
JavaScript
/**
|
|
* 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();
|
|
};
|