私はMongoose(永続ストレージ用にMongoDBを使用するnode.jsのORM)を評価しています。Mongoose DB接続の中断を処理する方法
私がしたいのは、アプリの起動時にDBが起動していないときにアプリが実行できることと、DBがインテリジェントに処理されることを確認することです。
現在、いずれの場合には動作しません。私のテストのアプリは、これを行います:モデルを作るとき
var mongoose_connection = mongoose.createConnection(DATABASE_URL, {server:{poolSize:4}});
は、それから私は、その接続を使用します。
アプリケーションの開始時にDBがダウンしている場合、インスタンス上のsave()呼び出しは何もエラーなく失敗します。 DBが復旧すれば、決して書かれません。
私は接続が起こっていないことを検出し、実行時に何とか処理できるようにアプリケーションに通知する必要があります。
アプリが起動した後にDBがダウンすると、save()コールでエラーは発生しませんが、キューに入れられ、DBが戻ったときに書き込まれます。
DBがダウンしたときにイベントを取得し、キューに登録されているセーブの数を問い合わせるために、APIにフックしたいのは例外です。ある時点では、待ち行列に入れられたイベントがたくさんあるので、新しいイベントの作成をやめて、そのアプリケーションをオフに戻したいと思うかもしれません。
mongoで安全な書き込みとgetLastError()について知っていますか? –
はい、そしてmongooseの文書によると、スキーマのデフォルトモードは安全です – justinhj