如何通过 PyMongo 在 Django 中高效地重用 MongoClient 连接?

问题描述 投票:0回答:1

我正在使用 Django 版本 3.0.8 和 PyMongo 版本 3.11.3 开发一个项目。目前,对于每个传入请求,都会创建一个新的

MongoClient
,并且一旦处理请求,连接就会被销毁。我认为由于连接的不断创建和破坏,这种方法会产生太多开销。有没有更有效的方法来跨请求重用 MongoClient 连接?

django pymongo
1个回答
0
投票

是的,为每个请求创建新的

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()
    ...
© www.soinside.com 2019 - 2024. All rights reserved.