From 7f4ad65457e966d29dfe0a21ced52800c39687eb Mon Sep 17 00:00:00 2001 From: Windpicker-owo <3431391539@qq.com> Date: Sat, 1 Nov 2025 13:35:37 +0800 Subject: [PATCH] =?UTF-8?q?fix(database):=20=E4=BF=AE=E5=A4=8Ddecorators?= =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E5=AF=BC=E5=85=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在cached装饰器中延迟导入get_cache,避免以下循环依赖: decorators -> optimization.get_cache -> batch_scheduler -> session -> engine -> utils.exceptions 这个修复确保了所有装饰器可以正常导入和使用 --- src/common/database/utils/decorators.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/common/database/utils/decorators.py b/src/common/database/utils/decorators.py index 3db288464..1db687d15 100644 --- a/src/common/database/utils/decorators.py +++ b/src/common/database/utils/decorators.py @@ -14,7 +14,6 @@ from typing import Any, Awaitable, Callable, Optional, TypeVar from sqlalchemy.exc import DBAPIError, OperationalError, TimeoutError as SQLTimeoutError -from src.common.database.optimization import get_cache from src.common.logger import get_logger logger = get_logger("database.decorators") @@ -130,6 +129,9 @@ def cached( def decorator(func: Callable[..., T]) -> Callable[..., T]: @functools.wraps(func) async def wrapper(*args: Any, **kwargs: Any) -> T: + # 延迟导入避免循环依赖 + from src.common.database.optimization import get_cache + # 生成缓存键 cache_key_parts = [key_prefix or func.__name__]