Skip to content

Commit

Permalink
feat: 优化后端服务中的数据库连接池管理策略
Browse files Browse the repository at this point in the history
  • Loading branch information
FHU-yezi committed Jan 31, 2025
1 parent 4ad311a commit 67ada28
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 18 deletions.
13 changes: 7 additions & 6 deletions backend/main.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
import logging
from asyncio import run as asyncio_run

from litestar import Litestar
from litestar.openapi import OpenAPIConfig, OpenAPIController
from litestar.openapi.spec import Server
from sshared.api.uvicorn import get_uvicorn_params_from_config
from sshared.api import LIFESPANS, get_app_state, get_uvicorn_params_from_config
from sspeedup.api.litestar import EXCEPTION_HANDLERS
from uvicorn import run as uvicorn_run

from api import API_ROUTER
from models import init_db
from utils.config import CONFIG
from utils.db import jianshu_pool, jpep_pool, jtools_pool
from utils.log import logger

logging.getLogger("httpx").setLevel(logging.CRITICAL)
Expand Down Expand Up @@ -42,12 +41,14 @@ class CustomOpenAPIController(OpenAPIController):
root_schema_site="swagger",
enabled_endpoints={"swagger", "openapi.json"},
),
state=get_app_state(
logger=logger,
db_pools=(jianshu_pool, jpep_pool, jtools_pool),
),
lifespan=LIFESPANS,
)

if __name__ == "__main__":
asyncio_run(init_db())
logger.debug("初始化数据库成功")

logger.info("启动 API 服务")
uvicorn_run(
app="main:app",
Expand Down
7 changes: 0 additions & 7 deletions backend/models/__init__.py

This file was deleted.

19 changes: 14 additions & 5 deletions backend/utils/db.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,21 @@

enhance_json_process()

jtools_pool = Pool(
CONFIG.jtools_postgres.connection_string, min_size=1, max_size=4, app_name="JTools"
)
jianshu_pool = Pool(
CONFIG.jianshu_postgres.connection_string, min_size=2, max_size=8, app_name="JTools"
CONFIG.jianshu_postgres.connection_string,
min_size=2,
max_size=8,
app_name="JTools",
)
jpep_pool = Pool(
CONFIG.jpep_postgres.connection_string, min_size=2, max_size=8, app_name="JTools"
CONFIG.jpep_postgres.connection_string,
min_size=2,
max_size=8,
app_name="JTools",
)
jtools_pool = Pool(
CONFIG.jtools_postgres.connection_string,
min_size=1,
max_size=4,
app_name="JTools",
)

0 comments on commit 67ada28

Please sign in to comment.