为什么Pymango会产生(这么多)等待连接?

2024-09-29 23:24:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用一层薄薄的python连接到Mongo数据库。我从C++调用Python,这很好。你知道吗

S+C++ & Gt;Python & Gt;Mongo,并返回到Python & C++;

我用的是Pymango,我用的是Windows7。你知道吗

我想知道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

但是,当服务器启动时,总是会产生一个进程(进程“hacker”->;network),等待它超时,不是20毫秒之后,而是30秒之后。当我检查数据库是否正常运行时,经常会有数百个进程/连接正在等待。你知道吗

是我做错了什么,还是Pymango在Windows上工作不太好?你知道吗

谢谢!你知道吗


Tags: gtclient数据库localhostserver进程mongo事情
1条回答
网友
1楼 · 发布于 2024-09-29 23:24:42

我绕过了它,因为它似乎没有真正解决这个问题,而且这个问题可能/将导致奇怪的问题,我想我会分享我的解决方法:

1:建立并使用全局连接,不要连接并关闭,而是重用。你知道吗

在检查数据库是否启动时,首先检查是否存在全局连接

2:如果是的话,就用吧。如果它已经被删除(这应该“永远”不会发生,只有当说重新启动您的服务器或硬件故障),那么超时时间将很长。你知道吗

3:如果它不存在,请将我的代码与serverSelectionTimeoutMS=20一起使用,这样不会产生另一个等待的线程/进程,而且速度很快。你知道吗

相关问题 更多 >

    热门问题