perf(backend): 优化订单数据加载和日志记录

- 使用 selectinload 优化订单关联数据的加载,提高查询效率
- 添加 Playwright 初始化日志记录
- 移除未使用的中间件引用
- 调整 Redis 服务配置
This commit is contained in:
danial
2025-09-17 23:04:29 +08:00
parent d6816981ef
commit b0b8e2f4bd
4 changed files with 13 additions and 25 deletions

View File

@@ -224,8 +224,10 @@ class DistributedPlaywrightManager:
@classmethod
async def ensure_initialized(cls) -> bool:
"""确保Playwright已初始化"""
logger.info("确保Playwright已初始化...")
if not cls._initialized:
return await cls.initialize()
logger.info("Playwright已初始化")
return True
@classmethod

View File

@@ -21,7 +21,6 @@ from app.core.graceful_shutdown import graceful_shutdown_manager
from app.core.log import get_logger
from app.core.middleware import (
add_api_logging_middleware,
add_metrics_middleware,
setup_cors_middleware,
setup_custom_middleware,
)
@@ -234,7 +233,7 @@ def setup_middleware(app: FastAPI):
# add_metrics_middleware(app)
# 添加API日志记录中间件
add_api_logging_middleware(app)
# add_api_logging_middleware(app)
def setup_routes(app: FastAPI):

View File

@@ -7,6 +7,7 @@ from typing import Any, Optional
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.orm import selectinload
from app.core.log import get_logger
from app.models.giftcards import GiftCards
@@ -42,31 +43,18 @@ class TaskRepository(BaseRepository):
订单实例包含所有关联数据或None
"""
try:
query = select(Orders).where(Orders.id == order_id)
query = (
select(Orders)
.where(Orders.id == order_id)
.options(
selectinload(Orders.user_data),
selectinload(Orders.links),
selectinload(Orders.gift_cards),
)
)
result = await self.db_session.execute(query)
order = result.scalar_one_or_none()
if order:
# 手动加载关联数据(如果需要)
if order.user_data_id:
user_query = select(UserData).where(
UserData.id == order.user_data_id
)
user_result = await self.db_session.execute(user_query)
order.user_data = user_result.scalar_one_or_none()
if order.links_id:
link_query = select(Links).where(Links.id == order.links_id)
link_result = await self.db_session.execute(link_query)
order.links = link_result.scalar_one_or_none()
# 获取礼品卡信息
gift_card_query = select(GiftCards).where(
GiftCards.order_id == order_id
)
gift_card_result = await self.db_session.execute(gift_card_query)
order.gift_cards = gift_card_result.scalars().all()
return order
except Exception as e:

View File

@@ -148,7 +148,6 @@ services:
container_name: apple-exchange-redis
volumes:
- redis_data:/data
command: redis-server /usr/local/etc/redis/redis.conf
ports:
- "6379:6379"
networks: