From 2539063a3eaf92f05c44530d8a6b4f219cd62806 Mon Sep 17 00:00:00 2001 From: SXP-Simon Date: Thu, 26 Mar 2026 13:02:44 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=A2=9E=E9=87=8F=E5=88=86=E6=9E=90):=20?= =?UTF-8?q?=E5=A2=9E=E9=87=8F=E5=88=86=E6=9E=90=E4=BB=BB=E5=8A=A1=E7=9A=84?= =?UTF-8?q?=E7=94=9F=E5=91=BD=E5=91=A8=E6=9C=9F=E6=A3=80=E6=9F=A5=EF=BC=8C?= =?UTF-8?q?=E4=B8=8E=E5=AE=9A=E6=97=B6=E5=88=86=E6=9E=90=E4=BF=9D=E6=8C=81?= =?UTF-8?q?=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/infrastructure/scheduler/auto_scheduler.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/infrastructure/scheduler/auto_scheduler.py b/src/infrastructure/scheduler/auto_scheduler.py index aca016d..691df9f 100644 --- a/src/infrastructure/scheduler/auto_scheduler.py +++ b/src/infrastructure/scheduler/auto_scheduler.py @@ -375,6 +375,9 @@ class AutoScheduler: analysis_tasks = [] for gid, pid in target_list: + if self._terminating: + logger.info("检测到插件正在停止,取消后续分析任务创建") + break task = asyncio.create_task( throttled_analysis(gid, pid), name=f"analysis_group_{gid}", @@ -535,6 +538,9 @@ class AutoScheduler: analysis_tasks = [] for idx, (gid, pid) in enumerate(target_list): + if self._terminating: + logger.info("检测到插件正在停止,取消后续增量分析任务创建") + break task = asyncio.create_task( staggered_incremental(idx, gid, pid), name=f"incremental_group_{gid}", @@ -649,6 +655,8 @@ class AutoScheduler: async def _run_incremental_final_report(self): """基于当天增量累积数据生成并发送最终报告""" + if self._terminating: + return try: logger.info("开始生成增量最终报告(交错并发模式)") @@ -680,6 +688,9 @@ class AutoScheduler: report_tasks = [] for idx, (gid, pid) in enumerate(target_list): + if self._terminating: + logger.info("检测到插件正在停止,取消后续最终报告任务创建") + break task = asyncio.create_task( staggered_final_report(idx, gid, pid), name=f"final_report_group_{gid}", @@ -744,6 +755,9 @@ class AutoScheduler: trace_id = TraceContext.generate(prefix="report", group_name=group_name) TraceContext.set(trace_id) + if self._terminating: + return + logger.info( f"开始为群 {group_id} 生成增量最终报告 " f"(Platform: {target_platform_id or 'Auto'})"