From 1e0da9130360251193f0326560811e2570c49ea1 Mon Sep 17 00:00:00 2001 From: cui-gaoleng <562344211@qq.com> Date: Fri, 14 Nov 2025 12:12:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=BC=BAmongodb=20client=E5=81=A5?= =?UTF-8?q?=E5=A3=AE=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/mongo.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/apps/common/mongo.py b/apps/common/mongo.py index 17cef16f8..10257df9a 100644 --- a/apps/common/mongo.py +++ b/apps/common/mongo.py @@ -4,7 +4,7 @@ import logging import urllib.parse from typing import TYPE_CHECKING - +import os if TYPE_CHECKING: from pymongo.asynchronous.client_session import AsyncClientSession from pymongo.asynchronous.collection import AsyncCollection @@ -19,6 +19,22 @@ class MongoDB: """MongoDB连接器""" _client: "AsyncMongoClient" = AsyncMongoClient( f"mongodb://{urllib.parse.quote_plus(Config().get_config().mongodb.user)}:{urllib.parse.quote_plus(Config().get_config().mongodb.password)}@{Config().get_config().mongodb.host}:{Config().get_config().mongodb.port}/?directConnection=true", + maxPoolSize=os.cpu_count() * 2, + minPoolSize=5, # 最小保持连接数 + maxIdleTimeMS=300000, # 连接最大空闲时间(5分钟) + maxConnecting=10, # 最大并发连接创建数 + + # 超时设置 + serverSelectionTimeoutMS=15000, # 服务器选择超时(15秒) + socketTimeoutMS=300000, # socket读写超时(5分钟) + connectTimeoutMS=15000, # 连接建立超时(15秒) + + # 重试机制 + retryWrites=True, # 支持写操作重试 + retryReads=True, # 支持读操作重试 + + # 心跳检测 + heartbeatFrequencyMS=5000, # 服务器心跳检测间隔(5秒) ) @staticmethod -- Gitee