Vous utilisez mangoose, il émet des événements (le modèle EventEmitter) lorsque la base de données est en panne et lorsque la base de données se reconnecte et se rallume.
du code mangouste trouvé ici nous pouvons voir que la connexion à la base de données de la bibliothèque - connection.js
a les événements suivants qui sont émis :* @param {Mongoose} base une instance de mangouste* @inherits NodeJS EventEmitter
http://nodejs.org/api/events.html#events_class_events_eventemitter
* @event connecting
:Émis lors de la connection.{open,openSet}()
est exécuté sur cette connexion.
-
@event
connected
:émis lorsque cette connexion se connecte avec succès à la base de données. Peut être émis multiple fois enreconnected
scénarios. -
@event
open
:Émis après que nous nous soyonsconnected
etonOpen
est exécuté sur tous ces modèles de connexions. -
@event
disconnecting
:Émis lorsqueconnection.close()
a été exécuté. -
@event
disconnected
:Émis après avoir été déconnecté de la base de données. -
@event
close
:Émis après que nous nous sommesdisconnected
etonClose
exécuté sur tous ces modèles de connexions. -
@event
reconnected
:Émis après que nous nous soyonsconnected
et ensuitedisconnected
, suivi d'une autre connexion réussie. -
@event
error
:Emis lorsqu'une erreur se produit sur cette connexion. -
@event
fullsetup
:émis dans un scénario d'ensemble de répliques, lorsque le primaire et au moins un secondaire spécifié dans la chaîne de connexion sont connectés. -
@event
all
:émis dans un scénario d'ensemble de répliques, lorsque tous les nœuds spécifiés dans la chaîne de connexion sont connectés.
Lorsque la base de données est en panne, vous recevrez deux événements :1. déconnecté2. erreur (l'erreur rencontrée par le pilote)
Lorsque la base de données sera à nouveau active, vous recevrez l'événement de reconnexion.
Vous n'avez donc pas besoin d'essayer d'attraper l'erreur, vous devez plutôt écouter ces événements.
Des informations plus utiles sur les échecs de connexion et la reconnexion peuvent être trouvées ici .
Cet article explique comment utiliser et configurer l'autoReconnect et le bufferMaxEntries en fonction de vos paramètres.