修复:Redis 配置加载时传入 alarm_level 到算法实例

Redis 订阅路径初始化算法时漏传 alarm_level 参数,
导致前端配置的告警等级不生效,始终使用默认值。
This commit is contained in:
2026-03-19 10:56:28 +08:00
parent 13706bc55c
commit 8da4ef9e93

View File

@@ -1347,6 +1347,7 @@ class AlgorithmManager:
key = f"{roi_id}_{bind_id}"
if algo_code == "leave_post":
configured_alarm_level = params.get("alarm_level")
algo_params = {
"confirm_on_duty_sec": params.get("confirm_on_duty_sec", 10),
"confirm_leave_sec": params.get("confirm_leave_sec", 30),
@@ -1360,6 +1361,8 @@ class AlgorithmManager:
algo.confirm_leave_sec = algo_params["confirm_leave_sec"]
algo.cooldown_sec = algo_params["cooldown_sec"]
algo.target_class = algo_params["target_class"]
if configured_alarm_level is not None:
algo._alarm_level = configured_alarm_level
if algo_params["working_hours"]:
algo.working_hours = algo_params["working_hours"]
logger.info(f"已热更新算法参数: {key}")
@@ -1368,13 +1371,15 @@ class AlgorithmManager:
self.algorithms[roi_id][key]["leave_post"] = LeavePostAlgorithm(
confirm_on_duty_sec=algo_params["confirm_on_duty_sec"],
confirm_leave_sec=algo_params["confirm_leave_sec"],
leave_countdown_sec=algo_params.get("leave_countdown_sec", 300), # 离岗倒计时默认5分钟
leave_countdown_sec=algo_params.get("leave_countdown_sec", 300),
cooldown_sec=algo_params["cooldown_sec"],
working_hours=algo_params["working_hours"],
target_class=algo_params["target_class"],
alarm_level=configured_alarm_level,
)
logger.info(f"已从Redis加载算法: {key}")
elif algo_code == "intrusion":
configured_alarm_level = params.get("alarm_level")
algo_params = {
"cooldown_seconds": params.get("cooldown_seconds", 300),
"confirm_seconds": params.get("confirm_seconds", 5),
@@ -1385,6 +1390,7 @@ class AlgorithmManager:
cooldown_seconds=algo_params["cooldown_seconds"],
confirm_seconds=algo_params["confirm_seconds"],
target_class=algo_params["target_class"],
alarm_level=configured_alarm_level,
)
logger.info(f"已从Redis加载算法: {key}")