diff --git a/internal/app/service/task/scheduler.go b/internal/app/service/task/scheduler.go index 6e93590..fc9506e 100644 --- a/internal/app/service/task/scheduler.go +++ b/internal/app/service/task/scheduler.go @@ -437,7 +437,12 @@ func (s *Scheduler) handlePlanCompletion(planLogID uint) { } // 6. 调用共享的 Manager 来处理触发器更新逻辑 - if err := s.analysisPlanTaskManager.CreateOrUpdateTrigger(topLevelPlanID); err != nil { - s.logger.Errorf("为计划 %d 创建/更新触发器失败: %v", topLevelPlanID, err) + // 只有当计划在本次执行后仍然是 Enabled 状态时,才需要创建下一次的触发器。 + if newStatus == models.PlanStatusEnabled { + if err := s.analysisPlanTaskManager.CreateOrUpdateTrigger(topLevelPlanID); err != nil { + s.logger.Errorf("为计划 %d 创建/更新触发器失败: %v", topLevelPlanID, err) + } else { + s.logger.Infof("计划 %d 状态为 '%d',无需创建下一次触发器。", topLevelPlanID, newStatus) + } } }