有没有办法同步检查 mongod 实例(使用 mongoclient)是否仍在运行?
我有一个db.on('close')
我的 mongoclient 模块中的处理程序在 mongod 正常退出的情况下工作,但如果我终止服务器进程,我的 Node 应用程序将完全挂起,无法返回其正常职责。所有请求都被阻止,并且没有超时。
当 mongod 再次启动时,应用程序将恢复正常,因此如果等待时间太长,肯定可以采取一些措施来终止该应用程序。
我只能认为同步执行此操作是对 db.runCommand({serverStauts: 1})
进行另一个回调肯定会陷入同样的状态。
最佳答案
我将 db.on('close')
的类似句柄附加到“error”事件,它的工作原理就像一个魅力。
这是我使用的代码(在 mongoclient.open 内部)
db.on('error', function() {
close(); // calls mongoclient.close()
return callback('Lost MongoDB!', null);
});
关于javascript - 检查 mongodb 服务器是否同步事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24533582/