From e880df8142d526ad9c71f3ca490e9b718d0bdb38 Mon Sep 17 00:00:00 2001 From: ssongliu <73214554+ssongliu@users.noreply.github.com> Date: Thu, 28 Aug 2025 12:08:09 +0800 Subject: [PATCH] fix: Fix snapshot cronjob execution issues (#10169) --- agent/app/service/cronjob_helper.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/agent/app/service/cronjob_helper.go b/agent/app/service/cronjob_helper.go index 94d61e324..7fac046a7 100644 --- a/agent/app/service/cronjob_helper.go +++ b/agent/app/service/cronjob_helper.go @@ -34,10 +34,17 @@ func (u *CronjobService) HandleJob(cronjob *model.Cronjob) { if cronjob.Type == "snapshot" { go func() { _ = cronjobRepo.UpdateRecords(record.ID, map[string]interface{}{"records": record.Records}) + if err := taskRepo.Save(context.Background(), taskItem.Task); err != nil { + global.LOG.Errorf("save task for snapshot cronjob failed, err: %v", err) + return + } if err = u.handleSnapshot(*cronjob, record, taskItem); err != nil { - item, _ := taskRepo.GetFirst(taskRepo.WithByID(record.TaskID)) - if len(item.ID) == 0 { - record.TaskID = "" + if len(taskItem.Task.CurrentStep) == 0 { + taskItem.Log(err.Error()) + taskItem.Task.Status = constant.StatusFailed + taskItem.Task.ErrorMsg = err.Error() + taskItem.Task.EndAt = time.Now() + _ = taskRepo.Save(context.Background(), taskItem.Task) } cronjobRepo.EndRecords(record, constant.StatusFailed, err.Error(), record.Records) handleCronJobAlert(cronjob)