我一直在評估Mongoose(一個ORM for node.js,它使用MongoDB作爲持久存儲)。如何處理Mongoose DB連接中斷
我想要做的是確保應用程序啓動時數據庫未啓動時應用程序可以運行,並且還可以智能地處理數據庫。
目前我的測試應用程序,它不會在任何情況下工作,做到這一點:
var mongoose_connection = mongoose.createConnection(DATABASE_URL, {server:{poolSize:4}});
然後我製作模型時,使用該連接。
在應用程序啓動時數據庫處於關閉狀態的情況下,對實例的任何save()調用將自動失敗並且沒有錯誤。如果數據庫恢復正常,他們永遠不會被寫入。
所以我需要檢測連接從未發生過,並讓應用程序能夠在運行時告訴我可以以某種方式處理它。
當應用程序啓動後數據庫出現故障時,儘管save()調用仍然不會導致錯誤,但它們在DB返回時排隊並寫入。
這似乎很好,除了我想鉤入API來獲取數據庫關閉時的事件並查詢有多少存儲隊列正在排隊。在某些時候,我可能會有很多排隊的事件,我想停止製作新的應用程序並讓應用程序退出。
你知道mongo中的安全寫入和getLastError()嗎? –
是的,根據貓鼬文檔,模式的默認模式是安全的 – justinhj