This commit is contained in:
薇薇安 2026-01-18 09:59:57 +08:00
parent dc7ebc8c16
commit 8e58443510
3 changed files with 26 additions and 6 deletions

View File

@ -102,16 +102,23 @@ logger = logging.getLogger(__name__)
logger.info(f"日志系统已初始化,日志文件: {log_file}")
logger.info(f"日志级别: {os.getenv('LOG_LEVEL', 'INFO')}")
# 检查 aioredis 是否可用
# 检查 redis-py 是否可用redis-py 4.2+ 同时支持同步和异步可替代aioredis
try:
import aioredis
logger.info(f"✓ aioredis 已安装 (版本: {aioredis.__version__ if hasattr(aioredis, '__version__') else '未知'})")
import redis
# 检查是否是 redis-py 4.2+(支持异步)
if hasattr(redis, 'asyncio'):
logger.info(f"✓ redis-py 已安装 (版本: {redis.__version__ if hasattr(redis, '__version__') else '未知'}),支持同步和异步客户端")
logger.info(f" - redis.Redis: 同步客户端用于config_manager")
logger.info(f" - redis.asyncio.Redis: 异步客户端用于trading_system可替代aioredis")
else:
logger.warning("⚠ redis-py 版本可能过低,建议升级到 4.2+ 以获得异步支持")
except ImportError as e:
import sys
logger.warning("⚠ aioredis 未安装Redis/Valkey 缓存将不可用")
logger.warning("redis-py 未安装Redis/Valkey 缓存将不可用")
logger.warning(f" Python 路径: {sys.executable}")
logger.warning(f" 导入错误: {e}")
logger.warning(f" 提示: 请运行 'pip install aioredis==2.0.1' 安装 aioredis")
logger.warning(f" 提示: 请运行 'pip install redis>=4.2.0' 安装 redis-py")
logger.warning(f" 注意: redis-py 4.2+ 同时支持同步和异步,无需安装 aioredis")
logger.warning(f" 或者运行 'pip install -r backend/requirements.txt' 安装所有依赖")
app = FastAPI(

View File

@ -223,7 +223,6 @@ class ConfigManager:
self._redis_client.ping()
except:
self._redis_connected = False
return
# 从数据库加载配置仅在Redis不可用或Redis中没有数据时
configs = TradingConfig.get_all()
@ -245,11 +244,21 @@ class ConfigManager:
def get(self, key, default=None):
"""获取配置值"""
# 1. 优先从Redis缓存读取最新
<<<<<<< Current (Your changes)
redis_value = self._get_from_redis(key)
if redis_value is not None:
# 同时更新本地缓存
self._cache[key] = redis_value
return redis_value
=======
# 注意只在Redis连接正常时尝试读取避免频繁连接失败
if self._redis_connected and self._redis_client:
redis_value = self._get_from_redis(key)
if redis_value is not None:
# 同时更新本地缓存
self._cache[key] = redis_value
return redis_value
>>>>>>> Incoming (Background Agent changes)
# 2. 从本地缓存读取
if key in self._cache:

View File

@ -168,6 +168,10 @@ def _get_trading_config():
"""获取交易配置支持动态重载优先从Redis读取最新值"""
if _config_manager:
# 从Redis重新加载配置轻量级只从Redis读取不查数据库
<<<<<<< Current (Your changes)
=======
# 注意如果Redis不可用或没有数据reload_from_redis()会保持现有缓存,不会触发数据库加载
>>>>>>> Incoming (Background Agent changes)
_config_manager.reload_from_redis()
return _config_manager.get_trading_config()
# 回退到默认配置