From 02fe448c0fd62320e1ed8ccb3a21a9a165a63365 Mon Sep 17 00:00:00 2001 From: duorameng <2997944583@qq.com> Date: Mon, 11 May 2026 19:40:18 +0800 Subject: [PATCH] fix: retry times count error #96 --- internal/services/tasks/executor_service.go | 24 +++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/internal/services/tasks/executor_service.go b/internal/services/tasks/executor_service.go index ac11565..1a91ea2 100644 --- a/internal/services/tasks/executor_service.go +++ b/internal/services/tasks/executor_service.go @@ -401,7 +401,9 @@ func (es *ExecutorService) HandleTaskRetry(task *models.Task, req *executor.Exec if latestTask == nil || !utils.DerefBool(latestTask.Enabled, true) { return nil } - return es.CreateExecutionRequest(latestTask, executor.TaskTypeManual, nil) + newReq := es.CreateExecutionRequest(latestTask, req.Type, nil) + newReq.Metadata.RetryIndex = retryIndex + return newReq }) } } @@ -1068,7 +1070,25 @@ func (es *ExecutorService) HandleAgentResult(result *models.AgentTaskResult) err if err != nil { return err } - return es.taskLogService.ProcessTaskCompletion(taskLog) + + err = es.taskLogService.ProcessTaskCompletion(taskLog) + if err != nil { + return err + } + + // 处理重试逻辑(针对 Agent 自主触发的定时任务) + if task != nil { + isSuccess := result.Status == constant.TaskStatusSuccess + es.HandleTaskRetry(task, &executor.ExecutionRequest{ + TaskID: task.ID, + Type: executor.TaskTypeCron, + Metadata: executor.ExecutionMetadata{ + RetryIndex: 0, // 初始上报视为第 0 次 + }, + }, isSuccess, result.Status, result.ExitCode) + } + + return nil } // BuildRepoCommand 构建仓库同步任务的命令