Es gibt 2 Verbindungsoptionen, die steuern, wie der mongo nodejs-Treiber die Verbindung wieder herstellt, nachdem die Verbindung fehlgeschlagen ist
- reconnectTries:#mal versuchen, die Verbindung wiederherzustellen (standardmäßig 30mal)
- reconnectInterval:Server wartet # Millisekunden zwischen Wiederholungen (Standard 1000 ms)
Referenz auf Mongo-Treiberdokumentation
Das bedeutet, dass Mongo standardmäßig 30 Mal versucht, eine Verbindung herzustellen, und vor jedem erneuten Versuch 1 Sekunde wartet. Aus diesem Grund sehen Sie nach 30 Sekunden Fehler.
Sie sollten diese 2 Parameter basierend auf Ihren Anforderungen anpassen, wie in diesem Beispiel.
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)
});
Dies wird 60 Mal anstelle der standardmäßigen 30 Versuche versuchen, was bedeutet, dass Sie nach 60 Sekunden Fehler sehen, wenn es aufhört, eine Verbindung herzustellen.
Nebenbemerkung:Wenn Sie verhindern möchten, dass die App/Anfrage bis zum Ablauf der Wiederverbindungsfrist wartet, müssen Sie die Option bufferMaxEntries: 0
übergeben . Der Preis dafür ist, dass Anfragen auch bei kurzen Netzunterbrechungen abgebrochen werden.