Ada 2 opsi koneksi yang mengontrol bagaimana driver mongo nodejs terhubung kembali setelah koneksi gagal
- ReconnectTries:coba sambungkan kembali #kali (default 30 kali)
- reconnectInterval:Server akan menunggu # milidetik di antara percobaan ulang (default 1000 md)
referensi pada dokumen driver mongo
Yang berarti mongo akan terus mencoba terhubung 30 kali secara default dan menunggu 1 detik sebelum mencoba lagi. Itulah sebabnya Anda mulai melihat kesalahan setelah 30 detik.
Anda harus mengubah 2 parameter ini berdasarkan kebutuhan Anda seperti contoh ini.
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)
});
Ini akan mencoba 60 kali, bukan default 30, yang berarti Anda akan mulai melihat kesalahan setelah 60 detik saat berhenti mencoba menyambung kembali.
Sidenote:jika Anda ingin mencegah aplikasi/permintaan menunggu hingga berakhirnya periode koneksi ulang, Anda harus melewati opsi bufferMaxEntries: 0
. Harganya adalah permintaan juga dibatalkan selama gangguan jaringan singkat.