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
http://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 ireconnected
scenarier. -
@event
open
:Udsendes efter viconnected
ogonOpen
udfø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 vidisconnected
ogonClose
udført på alle disse forbindelsesmodeller. -
@event
reconnected
:Udsendes efter viconnected
og 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.