1

在我的应用程序中,当主机由于某种原因不可用时(例如 DC 之间的连接断开),我试图优雅地处理情况。在这种情况下,应该在前端禁用写入操作,并且应该将缓存数据库用于某些读取操作。

我曾尝试使用rs.status()命令。它在mongoshell 中工作,但pymongo在 master 不可用时不起作用,因为replSetGetStatuscommand 不在 list 中rp.secondary_ok_commands。结果我遇到了异常:

AutoReconnect:没有可用于使用 ReadPreference PRIMARY 查询的副本集主。

当然我可以处理这个异常,但它是在超时后生成的(在我的例子中是 10 秒)。但就我而言,它太长了。我更喜欢立即响应,如果有时它会不正确,这对我来说是可以的。

4

1 回答 1

1

为此,我们在 PyMongo 中引入了alive()方法。

于 2013-12-17T17:57:06.873 回答