MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Lorsque le serveur mongodb est en panne, comment détecter l'erreur lors de l'exécution de la requête mongoose

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 en reconnected scénarios.

  • @event open :Émis après que nous nous soyons connected et onOpen est exécuté sur tous ces modèles de connexions.

  • @event disconnecting :Émis lorsque connection.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 sommes disconnected et onClose exécuté sur tous ces modèles de connexions.

  • @event reconnected :Émis après que nous nous soyons connected et ensuite disconnected , 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.