sql >> Databasteknik >  >> NoSQL >> MongoDB

Återanslut till MongoDB på ett tillförlitligt sätt

Det finns 2 anslutningsalternativ som styr hur mongo nodejs-drivrutinen återansluter efter att anslutningen misslyckats

  • reconnectTries:försök att återansluta # gånger (standard 30 gånger)
  • återanslutningsintervall:Servern väntar # millisekunder mellan försök (standard 1000 ms)

referens om mongo drivrutinsdokument

Vilket innebär att mongo kommer att fortsätta försöka ansluta 30 gånger som standard och vänta 1 sekund innan varje nytt försök. Det är därför du börjar se fel efter 30 sekunder.

Du bör justera dessa två parametrar baserat på dina behov som detta exempel.

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)
    });

Detta kommer att försöka 60 gånger istället för standard 30, vilket betyder att du kommer att börja se fel efter 60 sekunder när den slutar försöka återansluta.

Sidenote:om du vill förhindra att appen/förfrågan väntar tills återanslutningsperioden löper ut måste du passera alternativet bufferMaxEntries: 0 . Priset för detta är att förfrågningar också avbryts vid korta nätverksavbrott.



  1. vill köra redis-server i bakgrunden nonstop

  2. MongoDB:Hitta underdokument i Array Matching Parameters

  3. MongoDB - personsökning

  4. MongoDB Schema Planeringstips