如何在运行时获得打开的Mongo连接的数量?



我连接和断开Mongo的方式:

class Database:
def connect(self):
self.client = MongoClient(self.uri)
def close(self):
if self.client:
self.client.close()

def __enter__(self):
if self.is_not_connected():
self.connect()
return self
def __exit__(self, exc_type, exc_val, exc_tb):
self.close()

我使用with打开和关闭与Mongo的连接。我想跟踪打开的连接的数量,每次我打开和关闭一个连接。简单的印花就行了。但是如何得到包含连接数的字段呢?我看了dir(self.client)但它没有一个特殊的方法。我想知道运行时的连接数。我该怎么做呢?

处理它的一种方法是添加一个计数器作为类变量,在调用open或close方法时增加或减少连接总数。如下所示:

class Database:
num_of_connections = 0
def connect(self):
Database.num_of_connections += 1
self.client = MongoClient(self.uri)
def close(self):
if self.client:
Database.num_of_connections -= 1
self.client.close()
def __enter__(self):
if self.is_not_connected():
self.connect()
return self
def __exit__(self, exc_type, exc_val, exc_tb):
self.close()
def active_connections(self):
print(Database.num_of_connections)

最新更新