在我的应用程序中,当主人因某些原因不可用时(例如,DC之间的连接断开),我正在尝试优雅的处理案例。在这种情况下,应该在前端禁用写操作,缓存数据库应该用于某些读操作。
我尝试使用rs.status()
命令。它适用于mongo
shell,但由于pymongo
命令不在列表replSetGetStatus
中,因此当主服务器不可用时,rp.secondary_ok_commands
无效。结果我得到了例外:
AutoReconnect:没有副本集主可用于使用ReadPreference PRIMARY进行查询。
原因我可以处理这个异常,但它是在超时后产生的(在我的情况下为10秒)。但在我的情况下,这太长了。我更喜欢立即回复,如果有时它会不正确,我也可以。