Du bruger mongoose, den udsender hændelser (EventEmitter-mønsteret), når databasen er nede, og når databasen genopretter forbindelse og op igen.
fra mongoose-kode fundet her vi kan se, at bibliotekets db-forbindelse - connection.js">>
har følgende hændelser, der udsendes:* @param {Mongoose} baserer en mongoose-forekomst* @inherits NodeJS EventEmitter
https://nodejs.org/api/events.html#events_class_events_eventemitter
* @event connecting :Udsendes ved connection.{open,openSet}() udføres på denne forbindelse.
-
@event
connected:Udsendes, når denne forbindelse opretter forbindelse til db. Kan udsendes flere gange ireconnectedscenarier. -
@event
open:Udsendes efter viconnectedogonOpenudføres på alle disse forbindelsesmodeller. -
@event
disconnecting:Udsendes nårconnection.close()blev henrettet. -
@event
disconnected:Udsendes efter at være blevet afbrudt fra db. -
@event
close:Udsendes efter at vidisconnectedogonCloseudført på alle disse forbindelsesmodeller. -
@event
reconnected:Udsendes efter viconnectedog efterfølgendedisconnected, efterfulgt af endnu en vellykket forbindelse. -
@event
error:Udsendes, når der opstår en fejl på denne forbindelse. -
@event
fullsetup:Udsendes i et scenarie med replikasæt, når primær og mindst én sekundær, der er angivet i forbindelsesstrengen, er forbundet. -
@event
all:Udsendes i et replika-sæt scenarie, når alle noder specificeret i forbindelsesstrengen er forbundet.
Når databasen er nede vil du modtage to begivenheder:1. afbrudt 2. fejl (den fejl, som driveren stødte på)
Når databasen er oppe igen, vil du modtage gentilslutningshændelsen.
Så du behøver ikke prøve at fange fejlen, men du bør lytte til disse begivenheder.
Flere nyttige oplysninger om forbindelsesfejl og genforbindelse kan findes her .
Denne artikel forklarer, hvordan du bruger og konfigurerer autoReconnect og bufferMaxEntries i henhold til dine indstillinger.