Ho valutato Mongoose (un ORM per node.js che utilizza MongoDB per l'archiviazione persistente).Come gestire le interruzioni di connessione del DB Mongoose
Quello che mi piacerebbe fare è assicurarsi che l'app possa essere eseguita quando il DB non è attivo all'avvio dell'app e gestisce anche il DB in modo intelligente.
Attualmente la mia applicazione di test che non funziona in entrambi i casi fa questo:
var mongoose_connection = mongoose.createConnection(DATABASE_URL, {server:{poolSize:4}});
allora io uso quella connessione quando si effettua Models.
Nel caso in cui il DB non sia attivo all'inizio dell'app, tutte le chiamate di salvataggio() su istanze non riescono automaticamente senza errori. Se il DB viene ripristinato, non viene mai scritto.
Quindi avrei bisogno di rilevare che la connessione non è mai avvenuta e l'app è in grado di dirlo a runtime in modo che possa gestirlo in qualche modo.
Quando il DB si interrompe dopo l'avvio dell'app, sebbene le chiamate save() continuino a non causare errori ma vengono accodate e scritte quando il DB ritorna.
Ciò sembra soddisfacente, tranne che mi piacerebbe collegarmi all'API per ottenere eventi quando il DB è inattivo e interrogare quanti salvataggi sono in coda. Ad un certo punto potrei avere così tanti eventi in coda che vorrei semplicemente smettere di crearne di nuovi e far sì che l'app torni indietro.
Conoscete le scritture sicure e getLastError() in mongo? –
Sì, e secondo la documentazione di mangusta la modalità predefinita per uno schema è sicura – justinhj