我有一个监控脚本每分钟检查一次我们的 mongodb 实例,并且需要一种很好的连接方式,执行一个简单的查询并让它在 10 秒内返回,或者如果需要超过 10 秒就以某种可预测的方式超时,并且让我抓住那个错误/异常。
根据 pymongo 的文档,您不能设置查询超时,只能设置套接字和连接超时(这似乎工作正常)。有什么解决方法吗?
程序的流程是这样的:
- 连接到mongodb
- 执行简单
find()
查询以检查最后更新的文档(用于统计) - 关闭连接。
#1 总是可以正常工作,但整个请求在 #2 处超时,我无法在我自己设定的 10 秒限制内捕获它。
由于许多并发的 map-reduce 查询,锁定似乎发生在高峰时段。我们正在使用 mongodb 2.4.3。