diff --git a/backend/config_manager.py b/backend/config_manager.py index cef945d..19475d4 100644 --- a/backend/config_manager.py +++ b/backend/config_manager.py @@ -757,8 +757,35 @@ class ConfigManager: # 如果值>1,认为是百分比形式(旧数据),转换为比例形式 # 数据迁移完成后,所有值都应该<=1,此逻辑可以移除 if value > 1: + old_value = value value = value / 100.0 - logger.warning(f"配置值格式转换(临时兼容): {key} = {value*100:.2f}% (从百分比形式转换为比例形式,建议执行数据迁移)") + logger.warning(f"配置值格式转换(临时兼容): {key} = {value*100:.2f}% (从百分比形式{old_value}转换为比例形式,建议执行数据迁移)") + # ⚠️ 关键修复:转换后立即更新Redis缓存,避免下次读取时再次触发转换 + try: + if key in RISK_KNOBS_KEYS: + # 风险旋钮:更新当前账号的Redis缓存 + self._set_to_redis(key, value) + # 同时更新本地缓存 + self._cache[key] = value + else: + # 全局配置:更新全局配置的Redis缓存 + global_config_mgr._set_to_redis(key, value) + # 同时更新本地缓存 + global_config_mgr._cache[key] = value + except Exception as e: + logger.debug(f"更新Redis缓存失败(不影响使用): {key} = {e}") + # ⚠️ 关键修复:转换后立即更新Redis缓存,避免下次读取时再次触发转换 + try: + if key in RISK_KNOBS_KEYS: + # 风险旋钮:更新当前账号的Redis缓存 + self._set_to_redis(key, value) + else: + # 全局配置:更新全局配置的Redis缓存 + global_config_mgr._set_to_redis(key, value) + # 同时更新本地缓存 + global_config_mgr._cache[key] = value + except Exception as e: + logger.debug(f"更新Redis缓存失败(不影响使用): {key} = {e}") return value