修复首页健康摘要兼容旧版数据库连接管理器

This commit is contained in:
liuwei
2026-05-06 09:01:59 +08:00
parent 905380a77a
commit 825aa612ed
2 changed files with 36 additions and 3 deletions
+26 -1
View File
@@ -39,6 +39,10 @@ class DBConnectionManager:
self.LOG = logger
self.mysql_pool = None
self.redis_pool = None
# 保留原始配置快照,方便后台健康看板、安全校验等辅助能力读取基础元信息。
# 注意这里只存轻量配置引用,不持久化敏感信息,也不改变现有连接池行为。
self.mysql_config = dict(mysql_config or {})
self.redis_config = dict(redis_config or {})
# 初始化MySQL连接池
if mysql_config:
@@ -58,6 +62,8 @@ class DBConnectionManager:
if not config:
self.LOG.warning("MySQL配置为空,跳过初始化")
return
# 记录最新配置,供运行态摘要读取当前 database / 阈值等基础信息。
self.mysql_config = dict(config or {})
# 准备连接池配置
pool_config = {
@@ -90,6 +96,8 @@ class DBConnectionManager:
if not config:
self.LOG.warning("Redis配置为空,跳过初始化")
return
# Redis db 序号等信息首页会直接展示,因此这里同步保存配置快照。
self.redis_config = dict(config or {})
self.redis_pool = redis.ConnectionPool(
host=config.get('host', 'localhost'),
@@ -131,6 +139,23 @@ class DBConnectionManager:
raise Exception("Redis连接池未初始化")
return redis.Redis(connection_pool=self.redis_pool)
def get_mysql_database_name(self) -> str:
"""返回当前 MySQL 连接配置中的数据库名。"""
return str((self.mysql_config or {}).get('database') or '').strip()
def get_slow_query_threshold_ms(self, default: int = 300) -> int:
"""返回慢 SQL 阈值(毫秒)。
兼容说明:
1. 新版部分分支会在配置里维护 `slow_query_threshold_ms`
2. 旧版没有时直接回退默认值,避免后台健康接口因辅助字段缺失而报错。
"""
try:
value = (self.mysql_config or {}).get('slow_query_threshold_ms', default)
return int(float(value))
except (TypeError, ValueError):
return int(default)
def close(self):
"""关闭所有连接池"""
@@ -140,4 +165,4 @@ class DBConnectionManager:
# 关闭Redis连接池
if self.redis_pool:
self.redis_pool.disconnect()
self.redis_pool = None
self.redis_pool = None