MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Der mongodb-Treiber von nodejs unterbricht die Verbindung im Leerlauf

Gelöst!

  1. Server.socketoptions.keepAlive auf 1 setzen . Aktualisieren Sie einfach das Optionsobjekt wie folgt:

    options = {
      auto_reconnect: true,
      db: {
        w: 1
      },
      server: {
        socketOptions: {
          keepAlive: 1
        }
      }
    };
    
  2. Pingen Sie die Datenbank in regelmäßigen Abständen. Hier ist ein Code-Snippet, das genau das tut:

    printEventCount = function() {
      db.collection("IOSEvents").count(function(err, numberOfEvents) {
        console.log(new Date() + ": error = " + err + ", number of events = " + numberOfEvents);
        ping();
      });
    };
    
    ping = function() {
      if (config.pingPeriod === 0)
        return;    
      setTimeout(printEventCount, config.pingPeriod);
    };