Er zijn 2 verbindingsopties die bepalen hoe het stuurprogramma van de mongo nodejs opnieuw verbinding maakt nadat de verbinding is mislukt
- reconnectTries:probeer #times opnieuw te verbinden (standaard 30 keer)
- reconnectInterval:Server wacht # milliseconden tussen nieuwe pogingen (standaard 1000 ms)
referentie op Mongo-stuurprogrammadocumenten
Dat betekent dat mongo standaard 30 keer blijft proberen verbinding te maken en 1 seconde wacht voor elke nieuwe poging. Daarom begin je na 30 seconden fouten te zien.
Je moet deze 2 parameters aanpassen op basis van je behoeften, zoals dit voorbeeld.
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)
});
Dit zal 60 keer proberen in plaats van de standaard 30, wat betekent dat je na 60 seconden fouten zult zien wanneer het stopt met proberen opnieuw verbinding te maken.
Sidenote:als je wilt voorkomen dat de app/verzoek wacht tot het verstrijken van de herverbindingsperiode, moet je de optie bufferMaxEntries: 0
doorgeven . De prijs hiervoor is dat verzoeken ook worden afgebroken tijdens korte netwerkonderbrekingen.