MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Niezawodne ponowne połączenie z MongoDB

Istnieją 2 opcje połączenia, które kontrolują sposób, w jaki sterownik mongo nodejs łączy się ponownie po nieudanym połączeniu

  • reconnectTries:próba ponownego połączenia #razy (domyślnie 30 razy)
  • reconnectInterval:Serwer będzie czekał # milisekund między kolejnymi próbami (domyślnie 1000 ms)

odniesienie do dokumentacji sterownika Mongo

Oznacza to, że mongo będzie domyślnie próbował połączyć się 30 razy i odczekać 1 sekundę przed każdą kolejną próbą. Dlatego po 30 sekundach pojawiają się błędy.

Powinieneś dostosować te 2 parametry w zależności od potrzeb, tak jak ten przykład.

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 spróbuje 60 razy zamiast domyślnych 30, co oznacza, że ​​po 60 sekundach zaczniesz widzieć błędy, gdy przestanie próbować nawiązać połączenie.

Uwaga dodatkowa:jeśli chcesz, aby aplikacja/żądanie nie czekało do wygaśnięcia okresu ponownego połączenia, musisz przejść do opcji bufferMaxEntries: 0 . Ceną za to jest to, że żądania są przerywane również podczas krótkich przerw w sieci.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Używasz JSON z MongoDB?

  2. Przechowywanie relacji przyjaciół w MongoDB?

  3. mongoengine - Zapytanie na ListField lub EmbeddedDocumentField

  4. Przewodnik po MongoDB z Javą

  5. Importujesz plik JSON za pomocą mongimport, czy nadal otrzymujesz „nieoczekiwany identyfikator”?