Skip to content

Commit 67ada28

Browse files
committed
feat: 优化后端服务中的数据库连接池管理策略
1 parent 4ad311a commit 67ada28

File tree

3 files changed

+21
-18
lines changed

3 files changed

+21
-18
lines changed

backend/main.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
import logging
2-
from asyncio import run as asyncio_run
32

43
from litestar import Litestar
54
from litestar.openapi import OpenAPIConfig, OpenAPIController
65
from litestar.openapi.spec import Server
7-
from sshared.api.uvicorn import get_uvicorn_params_from_config
6+
from sshared.api import LIFESPANS, get_app_state, get_uvicorn_params_from_config
87
from sspeedup.api.litestar import EXCEPTION_HANDLERS
98
from uvicorn import run as uvicorn_run
109

1110
from api import API_ROUTER
12-
from models import init_db
1311
from utils.config import CONFIG
12+
from utils.db import jianshu_pool, jpep_pool, jtools_pool
1413
from utils.log import logger
1514

1615
logging.getLogger("httpx").setLevel(logging.CRITICAL)
@@ -42,12 +41,14 @@ class CustomOpenAPIController(OpenAPIController):
4241
root_schema_site="swagger",
4342
enabled_endpoints={"swagger", "openapi.json"},
4443
),
44+
state=get_app_state(
45+
logger=logger,
46+
db_pools=(jianshu_pool, jpep_pool, jtools_pool),
47+
),
48+
lifespan=LIFESPANS,
4549
)
4650

4751
if __name__ == "__main__":
48-
asyncio_run(init_db())
49-
logger.debug("初始化数据库成功")
50-
5152
logger.info("启动 API 服务")
5253
uvicorn_run(
5354
app="main:app",

backend/models/__init__.py

Lines changed: 0 additions & 7 deletions
This file was deleted.

backend/utils/db.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,21 @@
44

55
enhance_json_process()
66

7-
jtools_pool = Pool(
8-
CONFIG.jtools_postgres.connection_string, min_size=1, max_size=4, app_name="JTools"
9-
)
107
jianshu_pool = Pool(
11-
CONFIG.jianshu_postgres.connection_string, min_size=2, max_size=8, app_name="JTools"
8+
CONFIG.jianshu_postgres.connection_string,
9+
min_size=2,
10+
max_size=8,
11+
app_name="JTools",
1212
)
1313
jpep_pool = Pool(
14-
CONFIG.jpep_postgres.connection_string, min_size=2, max_size=8, app_name="JTools"
14+
CONFIG.jpep_postgres.connection_string,
15+
min_size=2,
16+
max_size=8,
17+
app_name="JTools",
18+
)
19+
jtools_pool = Pool(
20+
CONFIG.jtools_postgres.connection_string,
21+
min_size=1,
22+
max_size=4,
23+
app_name="JTools",
1524
)

0 commit comments

Comments
 (0)