sql >> Databáze >  >> NoSQL >> MongoDB

Spolehlivě se znovu připojte k MongoDB

Existují 2 možnosti připojení, které řídí, jak se ovladač mongo nodejs znovu připojí po selhání připojení

  • reconnectTries:pokus o opětovné připojení #krát (výchozí 30krát)
  • reconnectInterval:Server bude mezi opakováním čekat # milisekundy (výchozí 1000 ms)

odkaz na mongo driver docs

Což znamená, že se mongo bude ve výchozím nastavení pokoušet připojit 30krát a před každým opakováním čekat 1 sekundu. To je důvod, proč se po 30 sekundách začnou zobrazovat chyby.

Tyto 2 parametry byste měli upravit podle svých potřeb, jako je tento příklad.

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 se pokusí 60krát místo výchozích 30, což znamená, že po 60 sekundách, kdy se přestane pokoušet o opětovné připojení, se začnou zobrazovat chyby.

Vedlejší poznámka:chcete-li zabránit tomu, aby aplikace/požadavek čekal do vypršení doby opětovného připojení, musíte předat volbu bufferMaxEntries: 0 . Cenou za to je, že požadavky jsou také přerušeny během krátkých přerušení sítě.



  1. Automatizace MongoDB pomocí SaltStack

  2. MongoDB Agregace se součtem hodnot pole

  3. Sdílení soketů přes samostatné instance nodeJS

  4. autentizace mongo z příkazového řádku se nezdaří