Det finns 2 anslutningsalternativ som styr hur mongo nodejs-drivrutinen återansluter efter att anslutningen misslyckats
- reconnectTries:försök att återansluta # gånger (standard 30 gånger)
- återanslutningsintervall:Servern väntar # millisekunder mellan försök (standard 1000 ms)
referens om mongo drivrutinsdokument
Vilket innebär att mongo kommer att fortsätta försöka ansluta 30 gånger som standard och vänta 1 sekund innan varje nytt försök. Det är därför du börjar se fel efter 30 sekunder.
Du bör justera dessa två parametrar baserat på dina behov som detta exempel.
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)
});
Detta kommer att försöka 60 gånger istället för standard 30, vilket betyder att du kommer att börja se fel efter 60 sekunder när den slutar försöka återansluta.
Sidenote:om du vill förhindra att appen/förfrågan väntar tills återanslutningsperioden löper ut måste du passera alternativet bufferMaxEntries: 0
. Priset för detta är att förfrågningar också avbryts vid korta nätverksavbrott.