2 कनेक्शन विकल्प हैं जो नियंत्रित करते हैं कि कैसे मोंगो नोडज ड्राइवर कनेक्शन विफल होने के बाद फिर से जुड़ता है
- पुनः कनेक्ट करने का प्रयास:# बार पुन:कनेक्ट करने का प्रयास (डिफ़ॉल्ट 30 बार)
- reconnectInterval:सर्वर पुनर्प्रयासों के बीच # मिलीसेकंड प्रतीक्षा करेगा (डिफ़ॉल्ट 1000 ms)
मोंगो ड्राइवर डॉक्स पर संदर्भ
जिसका अर्थ है कि मोंगो डिफ़ॉल्ट रूप से 30 बार कनेक्ट करने का प्रयास करता रहेगा और प्रत्येक पुनः प्रयास से पहले 1 सेकंड प्रतीक्षा करेगा। यही कारण है कि आपको 30 सेकंड के बाद त्रुटियां दिखाई देने लगती हैं।
आपको इस नमूने की तरह अपनी ज़रूरतों के आधार पर इन 2 मापदंडों में बदलाव करना चाहिए।
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)
});
यह डिफ़ॉल्ट 30 के बजाय 60 बार प्रयास करेगा, जिसका अर्थ है कि 60 सेकंड के बाद जब यह पुन:कनेक्ट करने का प्रयास करना बंद कर देगा तो आपको त्रुटियां दिखाई देने लगेंगी।
सिडेनोट:यदि आप ऐप/अनुरोध को पुन:कनेक्शन अवधि की समाप्ति तक प्रतीक्षा करने से रोकना चाहते हैं तो आपको bufferMaxEntries: 0
विकल्प पास करना होगा। . इसके लिए कीमत यह है कि छोटे नेटवर्क रुकावटों के दौरान अनुरोध भी निरस्त कर दिए जाते हैं।