@@ -39,13 +39,7 @@ class DBConnectionManager:
|
||||
self.LOG = logger
|
||||
self.mysql_pool = None
|
||||
self.redis_pool = None
|
||||
# 保存原始配置快照,供慢 SQL 阈值、库名探测等公共能力复用:
|
||||
# 1. BaseDBOperator 需要读取数据库名,去 information_schema 中检查索引;
|
||||
# 2. 慢 SQL 记录需要统一读取阈值配置,而不是每个 DB Operator 各自硬编码;
|
||||
# 3. 这里做浅拷贝即可,避免后续外部修改传入 dict 时影响内部状态。
|
||||
self.mysql_config = dict(mysql_config or {})
|
||||
self.redis_config = dict(redis_config or {})
|
||||
|
||||
|
||||
# 初始化MySQL连接池
|
||||
if mysql_config:
|
||||
self.init_mysql_pool(mysql_config)
|
||||
@@ -64,8 +58,6 @@ class DBConnectionManager:
|
||||
if not config:
|
||||
self.LOG.warning("MySQL配置为空,跳过初始化")
|
||||
return
|
||||
|
||||
self.mysql_config = dict(config or {})
|
||||
|
||||
# 准备连接池配置
|
||||
pool_config = {
|
||||
@@ -98,8 +90,6 @@ class DBConnectionManager:
|
||||
if not config:
|
||||
self.LOG.warning("Redis配置为空,跳过初始化")
|
||||
return
|
||||
|
||||
self.redis_config = dict(config or {})
|
||||
|
||||
self.redis_pool = redis.ConnectionPool(
|
||||
host=config.get('host', 'localhost'),
|
||||
@@ -127,26 +117,6 @@ class DBConnectionManager:
|
||||
raise Exception("MySQL连接池未初始化")
|
||||
|
||||
return self.mysql_pool.get_connection()
|
||||
|
||||
def get_mysql_database_name(self) -> str:
|
||||
"""返回当前 MySQL 目标库名。"""
|
||||
return str(self.mysql_config.get('database', '') or '').strip()
|
||||
|
||||
def get_slow_query_threshold_ms(self) -> int:
|
||||
"""读取慢 SQL 阈值,默认 500ms。"""
|
||||
try:
|
||||
threshold = int(self.mysql_config.get('slow_query_threshold_ms', 500) or 500)
|
||||
return threshold if threshold > 0 else 500
|
||||
except (TypeError, ValueError):
|
||||
return 500
|
||||
|
||||
def is_slow_query_log_enabled(self) -> bool:
|
||||
"""是否启用慢 SQL 日志。"""
|
||||
raw_value = self.mysql_config.get('enable_slow_query_log', True)
|
||||
if isinstance(raw_value, str):
|
||||
normalized = raw_value.strip().lower()
|
||||
return normalized not in {'0', 'false', 'off', 'no'}
|
||||
return bool(raw_value)
|
||||
|
||||
def get_redis_connection(self):
|
||||
"""获取Redis连接
|
||||
@@ -170,4 +140,4 @@ class DBConnectionManager:
|
||||
# 关闭Redis连接池
|
||||
if self.redis_pool:
|
||||
self.redis_pool.disconnect()
|
||||
self.redis_pool = None
|
||||
self.redis_pool = None
|
||||
Reference in New Issue
Block a user