Python 如何获取pymongo活动线程的数量?

Python 如何获取pymongo活动线程的数量?,python,multithreading,pymongo,Python,Multithreading,Pymongo,我有一个多线程程序,在主程序和每个线程中使用pymongo。由于pymongo将为每个连接创建2个线程,我如何才能找到pymongo创建的线程数 threading.activeCount() 我可以用上面的命令获得全部活动线程,但我不知道有多少属于pymongo。MongoDB shell中有一个命令:db.serverStatus() 它提供服务器状态,包括连接。您可以在Python代码中将其与pymongo一起使用: con = db.command("serverStatus")["c

我有一个多线程程序,在主程序和每个线程中使用pymongo。由于pymongo将为每个连接创建2个线程,我如何才能找到pymongo创建的线程数

threading.activeCount()

我可以用上面的命令获得全部活动线程,但我不知道有多少属于pymongo。

MongoDB shell中有一个命令:
db.serverStatus()

它提供服务器状态,包括连接。您可以在Python代码中将其与pymongo一起使用:

con = db.command("serverStatus")["connections"];
Current_con = con["current"] #Int Value.

注意
con
是一个JSON对象。

MongoDB shell中有一个命令:
db.serverStatus()

它提供服务器状态,包括连接。您可以在Python代码中将其与pymongo一起使用:

con = db.command("serverStatus")["connections"];
Current_con = con["current"] #Int Value.

注意
con
是一个JSON对象。

PyMongo不会为每个连接创建两个线程。每个MongoClient都有一个用于定期清理任务的后台线程,每个服务器都有一个用于监视MongoDB服务器状态的后台线程。因此,如果创建默认MongoClient,它将连接到localhost:27017上的一台服务器,总共生成两个线程:

c = MongoClient("mongodb://localhost")
如果您这样做:

c = MongoClient("mongodb://host1,host2/?replicaSet=my_replica_set")
然后PyMongo将发现副本集成员并生成线程来监视它们,直到发现整个副本集为止。因此,如果您有一个由三个成员组成的集合,PyMongo将产生四个线程

简而言之,要知道PyMongo已启动的线程数,您应该定期执行以下操作:

len(c.nodes) + 1
这是PyMongo知道的服务器数量,加上清理线程的一个


我还写了一篇文章,主要面向未来的PyMongo维护人员。

PyMongo不会为每个连接创建两个线程。每个MongoClient都有一个用于定期清理任务的后台线程,每个服务器都有一个用于监视MongoDB服务器状态的后台线程。因此,如果创建默认MongoClient,它将连接到localhost:27017上的一台服务器,总共生成两个线程:

c = MongoClient("mongodb://localhost")
如果您这样做:

c = MongoClient("mongodb://host1,host2/?replicaSet=my_replica_set")
然后PyMongo将发现副本集成员并生成线程来监视它们,直到发现整个副本集为止。因此,如果您有一个由三个成员组成的集合,PyMongo将产生四个线程

简而言之,要知道PyMongo已启动的线程数,您应该定期执行以下操作:

len(c.nodes) + 1
这是PyMongo知道的服务器数量,加上清理线程的一个

我还写了一篇文章,主要面向未来的PyMongo维护人员