Existují 2 možnosti připojení, které řídí, jak se ovladač mongo nodejs znovu připojí po selhání připojení
- reconnectTries:pokus o opětovné připojení #krát (výchozí 30krát)
- reconnectInterval:Server bude mezi opakováním čekat # milisekundy (výchozí 1000 ms)
odkaz na mongo driver docs
Což znamená, že se mongo bude ve výchozím nastavení pokoušet připojit 30krát a před každým opakováním čekat 1 sekundu. To je důvod, proč se po 30 sekundách začnou zobrazovat chyby.
Tyto 2 parametry byste měli upravit podle svých potřeb, jako je tento příklad.
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)
});
To se pokusí 60krát místo výchozích 30, což znamená, že po 60 sekundách, kdy se přestane pokoušet o opětovné připojení, se začnou zobrazovat chyby.
Vedlejší poznámka:chcete-li zabránit tomu, aby aplikace/požadavek čekal do vypršení doby opětovného připojení, musíte předat volbu bufferMaxEntries: 0
. Cenou za to je, že požadavky jsou také přerušeny během krátkých přerušení sítě.