From 8d3991c74ca7126b26962ac93a20cc24bafcf0c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=87=E8=96=87=E5=AE=89?= Date: Fri, 23 Jan 2026 20:47:11 +0800 Subject: [PATCH] a --- trading_system/binance_client.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/trading_system/binance_client.py b/trading_system/binance_client.py index d99eeff..7028b0d 100644 --- a/trading_system/binance_client.py +++ b/trading_system/binance_client.py @@ -71,6 +71,21 @@ class BinanceClient: logger.info(f"BinanceClient.__init__: 使用 API Key {key_display}, testnet={testnet}, explicit_key={self._explicit_api_key}, explicit_secret={self._explicit_api_secret}") else: logger.warning("BinanceClient.__init__: API Key 为空!") + + # 初始化 Redis 缓存(必须在 __init__ 中初始化,不能依赖 _refresh_api_credentials) + try: + self.redis_cache = RedisCache( + redis_url=config.REDIS_URL, + use_tls=config.REDIS_USE_TLS, + ssl_cert_reqs=config.REDIS_SSL_CERT_REQS, + ssl_ca_certs=config.REDIS_SSL_CA_CERTS, + username=config.REDIS_USERNAME, + password=config.REDIS_PASSWORD + ) + except Exception as e: + logger.warning(f"初始化 Redis 缓存失败: {e},某些功能可能不可用") + self.redis_cache = None + self.client: Optional[AsyncClient] = None self.socket_manager: Optional[BinanceSocketManager] = None self._symbol_info_cache: Dict[str, Dict] = {} # 缓存交易对信息 @@ -126,17 +141,8 @@ class BinanceClient: logger.warning("API密钥Secret已更新,但客户端已连接,需要重新连接才能使用新密钥") except Exception as e: logger.debug(f"从配置管理器刷新API密钥失败: {e},使用现有值") - - # 初始化 Redis 缓存 - self.redis_cache = RedisCache( - redis_url=config.REDIS_URL, - use_tls=config.REDIS_USE_TLS, - ssl_cert_reqs=config.REDIS_SSL_CERT_REQS, - ssl_ca_certs=config.REDIS_SSL_CA_CERTS, - username=config.REDIS_USERNAME, - password=config.REDIS_PASSWORD - ) + # 注意:redis_cache 已在 __init__ 中初始化,这里不需要再次初始化 async def connect(self, timeout: int = None, retries: int = None): """