Der er 2 forbindelsesmuligheder, der styrer, hvordan mongo nodejs-driveren genopretter forbindelse, efter at forbindelsen mislykkes
- reconnectTries:Forsøg at oprette forbindelse igen # gange (standard 30 gange)
- gentilslutningsinterval:Serveren vil vente # millisekunder mellem genforsøg (standard 1000 ms)
reference til mongo-driverdokumenter
Hvilket betyder, at mongo vil fortsætte med at forsøge at oprette forbindelse 30 gange som standard og vente 1 sekund før hvert genforsøg. Derfor begynder du at se fejl efter 30 sekunder.
Du bør justere disse 2 parametre baseret på dine behov som dette eksempel.
var MongoClient = require('mongodb').MongoClient,
f = require('util').format;
MongoClient.connect('mongodb://localhost:27017/test',
{
// retry to connect for 60 times
reconnectTries: 60,
// wait 1 second before retrying
reconnectInterval: 1000
},
function(err, db) {
var col = db.collection('t');
setInterval(function() {
col.insert({
a: 1
}, function(err, r) {
console.log("insert")
console.log(err)
col.findOne({}, function(err, doc) {
console.log("findOne")
console.log(err)
});
})
}, 1000)
});
Dette vil prøve 60 gange i stedet for standard 30, hvilket betyder, at du vil begynde at se fejl efter 60 sekunder, når den holder op med at forsøge at oprette forbindelse igen.
Sidenote:hvis du vil forhindre appen/anmodningen i at vente til udløbet af genforbindelsesperioden, skal du passere muligheden bufferMaxEntries: 0
. Prisen for dette er, at anmodninger også afbrydes under korte netværksafbrydelser.