sql >> Database teknologi >  >> NoSQL >> MongoDB

Genopret pålidelig forbindelse til MongoDB

Der er 2 forbindelsesmuligheder, der styrer, hvordan mongo nodejs-driveren genopretter forbindelse, efter at forbindelsen mislykkes

  • reconnectTries:Forsøg at oprette forbindelse igen # gange (standard 30 gange)
  • gentilslutningsinterval:Serveren vil vente # millisekunder mellem genforsøg (standard 1000 ms)

reference til mongo-driverdokumenter

Hvilket betyder, at mongo vil fortsætte med at forsøge at oprette forbindelse 30 gange som standard og vente 1 sekund før hvert genforsøg. Derfor begynder du at se fejl efter 30 sekunder.

Du bør justere disse 2 parametre baseret på dine behov som dette eksempel.

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

Dette vil prøve 60 gange i stedet for standard 30, hvilket betyder, at du vil begynde at se fejl efter 60 sekunder, når den holder op med at forsøge at oprette forbindelse igen.

Sidenote:hvis du vil forhindre appen/anmodningen i at vente til udløbet af genforbindelsesperioden, skal du passere muligheden bufferMaxEntries: 0 . Prisen for dette er, at anmodninger også afbrydes under korte netværksafbrydelser.



  1. Sådan annullerer du et job i kø i Laravel eller Redis

  2. Hvordan kan jeg bruge Tornado og Redis asynkront?

  3. Planlæg Node.js-job hvert femte minut

  4. Redis pub sub max abonnenter og udgivere