From ca227ebef7d996ea022dd4fed6a66f0ef1709fc0 Mon Sep 17 00:00:00 2001 From: zk Date: Wed, 15 Jul 2026 16:14:31 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E8=BF=9E=E6=8E=A5=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 7 +++++++ .env.prod | 7 +++++++ .env.test | 7 +++++++ app/config/settings.py | 7 +++++-- app/core/database.py | 4 ++++ 5 files changed, 30 insertions(+), 2 deletions(-) diff --git a/.env b/.env index 9bd33f5..fbb4d9a 100644 --- a/.env +++ b/.env @@ -6,6 +6,8 @@ PG_PORT=5432 PG_USER=postgres PG_PASSWORD=feAeyR0u2fJGSS5ooFdHnSbyHQNY4WlV PG_DB=postgres +PG_POOL_SIZE=10 +PG_MAX_OVERFLOW=10 # MySQL(业务库) DB_HOST=8.163.14.142 @@ -13,6 +15,11 @@ DB_PORT=30006 DB_USER=root DB_PASSWORD=^CgDatabase2020 DB_NAME=offerpie +MYSQL_POOL_SIZE=10 +MYSQL_MAX_OVERFLOW=10 + +# 连接池获取连接等待超时(秒),两库共用 +DB_POOL_TIMEOUT=30 # AI 供应商 diff --git a/.env.prod b/.env.prod index eaeff5c..47f4d22 100644 --- a/.env.prod +++ b/.env.prod @@ -6,6 +6,8 @@ PG_PORT=5432 PG_USER=postgres PG_PASSWORD=feAeyR0u2fJGSS5ooFdHnSbyHQNY4WlV PG_DB=postgres +PG_POOL_SIZE=10 +PG_MAX_OVERFLOW=10 # MySQL(业务库) DB_HOST=8.163.14.142 @@ -13,6 +15,11 @@ DB_PORT=30006 DB_USER=root DB_PASSWORD=^CgDatabase2020 DB_NAME=offerpie +MYSQL_POOL_SIZE=10 +MYSQL_MAX_OVERFLOW=10 + +# 连接池获取连接等待超时(秒),两库共用 +DB_POOL_TIMEOUT=30 # AI 供应商 diff --git a/.env.test b/.env.test index d698a10..27d82b2 100644 --- a/.env.test +++ b/.env.test @@ -6,6 +6,8 @@ PG_PORT=5432 PG_USER=postgres PG_PASSWORD=feAeyR0u2fJGSS5ooFdHnSbyHQNY4WlV PG_DB=postgres +PG_POOL_SIZE=10 +PG_MAX_OVERFLOW=10 # MySQL(业务库) DB_HOST=192.168.31.105 @@ -13,6 +15,11 @@ DB_PORT=3306 DB_USER=root DB_PASSWORD=123456 DB_NAME=offerpie +MYSQL_POOL_SIZE=10 +MYSQL_MAX_OVERFLOW=10 + +# 连接池获取连接等待超时(秒),两库共用 +DB_POOL_TIMEOUT=30 # AI 供应商 diff --git a/app/config/settings.py b/app/config/settings.py index e90e9b2..d60f589 100644 --- a/app/config/settings.py +++ b/app/config/settings.py @@ -14,7 +14,7 @@ class Settings(BaseSettings): pg_password: str = "" pg_db: str = "postgres" pg_pool_size: int = 10 - pg_max_overflow: int = 20 + pg_max_overflow: int = 10 # ──────────── MySQL(业务库)──────────── db_host: str = "192.168.31.105" @@ -23,7 +23,10 @@ class Settings(BaseSettings): db_password: str = "123456" db_name: str = "offerpie" mysql_pool_size: int = 10 - mysql_max_overflow: int = 20 + mysql_max_overflow: int = 10 + + # 连接池获取连接的等待超时(秒),两个数据源共用 + db_pool_timeout: int = 30 # ──────────── AI 供应商 ──────────── # 火山引擎(OpenAI 兼容风格) diff --git a/app/core/database.py b/app/core/database.py index 45b0331..7a16a81 100644 --- a/app/core/database.py +++ b/app/core/database.py @@ -39,7 +39,9 @@ async def init_db() -> None: settings.pg_url, pool_size=settings.pg_pool_size, max_overflow=settings.pg_max_overflow, + pool_timeout=settings.db_pool_timeout, pool_recycle=3600, + pool_pre_ping=True, echo=False, ) _pg_session_factory = async_sessionmaker(_pg_engine, expire_on_commit=False) @@ -48,7 +50,9 @@ async def init_db() -> None: settings.mysql_url, pool_size=settings.mysql_pool_size, max_overflow=settings.mysql_max_overflow, + pool_timeout=settings.db_pool_timeout, pool_recycle=3600, + pool_pre_ping=True, echo=False, ) _mysql_session_factory = async_sessionmaker(_mysql_engine, expire_on_commit=False)