Как справляться с прерываниями соединения с Mongoose DB

Я оценивал Mongoose (ORM для node.js, который использует MongoDB для постоянного хранения).

Что я хотел бы сделать, так это убедиться, что приложение может работать, когда БД не работает, когда приложение запускается, а также разумно обрабатывает БД, отключающуюся.

В настоящее время мое тестовое приложение, которое не работает ни в одном случае, делает следующее:

var mongoose_connection = mongoose.createConnection(DATABASE_URL, {server:{poolSize:4}});

Затем я использую это соединение при создании моделей.

В случае, когда БД не работает при запуске приложения, любые вызовы save() для экземпляров молча завершаются без ошибок. Если БД возвращается, они никогда не записываются.

Таким образом, мне нужно было бы определить, что соединения никогда не было, и сделать так, чтобы приложение могло сообщить об этом во время выполнения, чтобы я мог как-то с этим справиться.

Когда БД выходит из строя после запуска приложения, хотя вызовы save() по-прежнему не вызывают ошибок, но они ставятся в очередь и записываются, когда БД возвращается.

Это кажется прекрасным, за исключением того, что я хотел бы подключиться к API, чтобы получать события, когда БД не работает, и запрашивать, сколько сохранений стоит в очереди. В какой-то момент у меня может быть так много событий в очереди, что я захочу просто прекратить создавать новые и отключить приложение.

12
задан justinhj 3 June 2012 в 19:19
поделиться