我使用一层薄薄的python连接到Mongo数据库。我用C ++调用python,这很好。
所以C ++ - > Python - > Mongo和回到Python - > C ++
我在Windows 7上使用PyMongo和我。
我想知道Mongo数据库是否正常运行,所以我在Python中做了类似的事情:(请不要担心古怪的返回变量)
client = MongoClient('localhost', 27017, serverSelectionTimeoutMS = 20)
ret=[]
try:
client.server_info()
ret.append("up")
client.close()
except Exception as e:
ret.append("down")
return ret
但是,当服务器处于启动状态时,不变会产生一个进程(进程'黑客' - >网络),等待它超时,而不是在20毫秒后,但似乎是30秒。当我检查数据库是否已启动时,我经常会有数百个坐着,等待,进程/连接。
我做错了什么或者PyMongo在Windows上运行得不好?
谢谢!
答案 0 :(得分:0)
我解决了这个问题,因为它似乎没有真正解决这个问题,而且问题可能会/会引起奇怪的问题,我以为我会分享我的修复:
1:制作并使用全局连接,不要连接和关闭,重新使用。
在检查数据库是否启用时,首先检查是否存在全局连接
2:如果是这样,请使用它。如果它已被删除(应该"永远不会发生,只有当重新启动服务器或硬件故障时),那么超时将会很长。
3:如果它不存在,请使用我的代码与serverSelectionTimeoutMS = 20,它不会产生另一个等待的线程/进程并且也很快。