【发布时间】:2014-01-25 06:20:54
【问题描述】:
我一直在评估 Mongoose(node.js 的 ORM,它使用 MongoDB 进行持久存储)。
我想做的是确保应用程序启动时DB未启动时应用程序可以运行,并且还可以智能地处理DB下降。
目前我的测试应用程序在这两种情况下都不起作用:
var mongoose_connection = mongoose.createConnection(DATABASE_URL, {server:{poolSize:4}});
然后我在制作模型时使用该连接。
如果数据库在应用程序启动时关闭,那么对实例的任何 save() 调用都会静默失败,不会出现错误。如果数据库恢复,它们永远不会被写入。
因此,我需要检测到从未发生过连接,并让应用能够在运行时告知这一点,以便我能够以某种方式处理它。
当应用程序启动后数据库出现故障时,虽然 save() 调用仍然不会导致错误,但它们会排队并在数据库返回时写入。
这似乎很好,只是我想挂接到 API 以在数据库关闭时获取事件并查询排队的保存数量。在某些时候,我可能有太多排队的事件,以至于我想停止制作新事件并让应用程序退出。
【问题讨论】:
-
你知道mongo中的安全写入和getLastError()吗?
-
是的,根据 mongoose 文档,架构的默认模式是安全的