sql >> Databáze >  >> NoSQL >> MongoDB

Když mongodb server nefunguje, jak zachytit chybu při spuštění dotazu mongoose

Používáte mongoose, vysílá události (vzor EventEmitter), když je databáze mimo provoz a když se databáze znovu připojuje a znovu se připojuje.

z kódu mongoose nalezeného zde můžeme vidět, že připojení knihovny db - připojení.>

má následující události, které jsou emitovány:* @param {Mongoose} založí instanci mongoose* @inherits NodeJS EventEmitter

http://nodejs.org/api/events.html#events_class_events_eventemitter * @event connecting :Vydává se při connection.{open,openSet}() se na tomto připojení spustí.

  • @event connected :Vysílá se, když se toto připojení úspěšně připojí k databázi. Může být vysíláno více krát v reconnected scénáře.

  • @event open :Vydáno poté, co jsme connected a onOpen se provádí na všech těchto modelech připojení.

  • @event disconnecting :Vydává se při connection.close() byl popraven.

  • @event disconnected :Vysílá se po odpojení od databáze.

  • @event close :Odesláno poté, co jsme disconnected a onClose provedené na všech těchto modelech připojení.

  • @event reconnected :Vydáno poté, co jsme connected a následně disconnected , následované úspěšně dalším úspěšným připojením.

  • @event error :Vysílá se, když na tomto připojení dojde k chybě.

  • @event fullsetup :Vydává se ve scénáři sady replik, když jsou spojeny primární a alespoň jedna sekundární stanice zadaná v řetězci připojení.

  • @event all :Vydává se ve scénáři sady replik, když jsou připojeny všechny uzly uvedené v připojovacím řetězci.

Když je databáze mimo provoz, obdržíte dvě události:1. odpojeno 2. error (chyba, na kterou ovladač narazil)

Jakmile bude databáze opět aktivní, obdržíte událost opětovného připojení.

Nemusíte se tedy snažit zachytit chybu, spíše byste si měli tyto události poslechnout.

Další užitečné informace o selhání připojení a opětovném připojení naleznete zde .

Tento článek vysvětluje, jak používat a konfigurovat autoReconnect a bufferMaxEntries podle vašeho nastavení.




  1. Redis INCRBY s limity

  2. Jaké jsou základní rozdíly mezi select, epoll, kqueue a evport?

  3. Přístupy k zálohování a zotavení po havárii v HBase

  4. Jak se připojit k více sbírkám pomocí $lookup v mongodb