sql >> Database >  >> NoSQL >> MongoDB

Wordt een verbinding met MongoDB automatisch gesloten op process.exit()?

Het antwoord is nee . DB-verbindingen worden niet netjes afgesloten wanneer u afsluit (of crasht).

Om dat te doen, moet u iets gebruiken dat lijkt op:

// Create a function to terminate your app gracefully:
function gracefulShutdown(){
    // First argument is [force], see mongoose doc.
    mongoose.connection.close(false, () => {
      console.log('MongoDb connection closed.');
    });
  });
}

// Ask node to run your function before exit:

// This will handle process.exit():
process.on('exit', gracefulShutdown);

// This will handle kill commands, such as CTRL+C:
process.on('SIGINT', gracefulShutdown);
process.on('SIGTERM', gracefulShutdown);
process.on('SIGKILL', gracefulShutdown);

// This will prevent dirty exit on code-fault crashes:
process.on('uncaughtException', gracefulShutdown);

Er zijn ook enkele pakketten om dit gedrag aan te pakken, maar dit is meestal heel eenvoudig en eenvoudig te implementeren.




  1. Redis gedistribueerde verhoging met vergrendeling

  2. MongoDB:Calling Count() vs tracking counts in een collectie

  3. Een overzicht van ACID-transacties met meerdere documenten in MongoDB en hoe ze te gebruiken

  4. MongoClient-klasse versus MongoDB\Driver\Manager-klasse