我正在使用 Django 版本 3.0.8 和 PyMongo 版本 3.11.3 开发一个项目。目前,对于每个传入请求,都会创建一个新的
MongoClient
,并且一旦处理请求,连接就会被销毁。我认为由于连接的不断创建和破坏,这种方法会产生太多开销。有没有更有效的方法来跨请求重用 MongoClient 连接?
是的,为每个请求创建新的
MongoClient
可能会占用大量资源。
您可以使用 Singleton 解决方案来创建
MongoClient
:
# get_mongo_client.py
from pymongo import MongoClient
mongo_client = None
def get_mongo_client():
global mongo_client
if mongo_client is None:
mongo_client = MongoClient('mongodb://localhost:123/')
return mongo_client
此后,您可以在您的
view.py
中使用它:
# views.py
from .mongo_client import get_mongo_client
def my_view(request):
client = get_mongo_client()
...