启动计划时清零计数器
This commit is contained in:
@@ -390,13 +390,32 @@ func (c *Controller) StartPlan(ctx *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
// 4. 更新计划状态为“已启动”
|
||||
if err := c.planRepo.UpdatePlanStatus(plan.ID, models.PlanStatusEnabled); err != nil {
|
||||
c.logger.Errorf("更新计划 #%d 状态为 '已启动' 失败: %v", plan.ID, err)
|
||||
controller.SendErrorResponse(ctx, controller.CodeInternalError, "更新计划状态失败")
|
||||
// 4. 检查并重置执行计数器,然后更新计划状态为“已启动”
|
||||
// 只有当计划是从非 Enabled 状态(如 Disabled, Stopeed, Failed)启动时,才需要重置计数器
|
||||
if plan.Status != models.PlanStatusEnabled {
|
||||
// 如果计划是从停止或失败状态重新启动,且计数器不为0,则重置执行计数
|
||||
if plan.ExecuteCount > 0 {
|
||||
if err := c.planRepo.UpdateExecuteCount(plan.ID, 0); err != nil {
|
||||
c.logger.Errorf("重置计划 #%d 执行计数失败: %v", plan.ID, err)
|
||||
controller.SendErrorResponse(ctx, controller.CodeInternalError, "重置计划执行计数失败")
|
||||
return
|
||||
}
|
||||
c.logger.Infof("计划 #%d 的执行计数器已重置为 0。", plan.ID)
|
||||
}
|
||||
|
||||
// 更新计划状态为“已启动”
|
||||
if err := c.planRepo.UpdatePlanStatus(plan.ID, models.PlanStatusEnabled); err != nil {
|
||||
c.logger.Errorf("更新计划 #%d 状态失败: %v", plan.ID, err)
|
||||
controller.SendErrorResponse(ctx, controller.CodeInternalError, "更新计划状态失败")
|
||||
return
|
||||
}
|
||||
c.logger.Infof("已成功更新计划 #%d 的状态为 '已启动'。", plan.ID)
|
||||
} else {
|
||||
// 如果计划已经处于 Enabled 状态,则无需更新
|
||||
c.logger.Infof("计划 #%d 已处于启动状态,无需重复操作。", plan.ID)
|
||||
controller.SendErrorResponse(ctx, controller.CodeBadRequest, "计划已处于启动状态,无需重复操作")
|
||||
return
|
||||
}
|
||||
c.logger.Infof("已成功更新计划 #%d 的状态为 '已启动'", plan.ID)
|
||||
|
||||
// 5. 为计划创建或更新触发器
|
||||
if err := c.analysisPlanTaskManager.CreateOrUpdateTrigger(plan.ID); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user