MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Надеждно се свържете отново с MongoDB

Има 2 опции за свързване, които контролират как драйверът на mongo nodejs се свързва отново след неуспешна връзка

  • reconnectTries:опит за повторно свързване #times (по подразбиране 30 пъти)
  • reconnectInterval:Сървърът ще изчака # милисекунди между повторните опити (по подразбиране 1000 ms)

справка за документи за драйвери на mongo

Което означава, че mongo ще продължи да се опитва да се свърже 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)
    });

Това ще се опита 60 пъти вместо 30 по подразбиране, което означава, че ще започнете да виждате грешки след 60 секунди, когато спре да се опитва да се свърже отново.

Странична бележка:ако искате да предотвратите чакането на приложението/заявката до изтичане на периода на повторно свързване, трябва да подадете опцията bufferMaxEntries: 0 . Цената за това е, че заявките се прекратяват и при кратки прекъсвания на мрежата.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Актуализиране на голям брой записи в колекция

  2. Защо се добавя _id с ObjectID, когато се използва $push на MongoDB за добавяне на нов обект към масив?

  3. Mongoose find(), как да получите достъп до документите с резултати?

  4. $unwind обект в рамката за агрегиране

  5. Как да заявявам документи с помощта на полето _id в драйвера на Java mongodb?