mirror of
https://git.oceanpay.cc/danial/kami_apple_exchage.git
synced 2025-12-18 22:29:09 +00:00
perf(backend): 优化订单数据加载和日志记录
- 使用 selectinload 优化订单关联数据的加载,提高查询效率 - 添加 Playwright 初始化日志记录 - 移除未使用的中间件引用 - 调整 Redis 服务配置
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user