实现 StopUpgrade

This commit is contained in:
2025-12-05 16:53:52 +08:00
parent b4ecee6626
commit 349a31518d
4 changed files with 77 additions and 14 deletions

View File

@@ -3,6 +3,7 @@ package task
import (
"context"
"fmt"
"path/filepath"
"sync"
"time"
@@ -10,6 +11,7 @@ import (
"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs"
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
"git.huangwc.com/pig/pig-farm-controller/internal/infra/repository"
"git.huangwc.com/pig/pig-farm-controller/internal/infra/utils/file"
)
// OtaCheckTaskParams 定义了 OTA 检查任务所需的参数。
@@ -91,6 +93,13 @@ func (t *otaCheckTask) Execute(ctx context.Context) error {
if err := t.otaRepo.Update(taskCtx, task); err != nil {
// 仅记录错误,不中断整个检查任务,以确保其他超时任务能被处理
logger.Errorf("更新超时的OTA任务 #%d 状态失败: %v", task.ID, err)
} else {
// 数据库更新成功后,清理文件
logger.Infof("OTA任务 #%d 状态已更新为超时,现在开始清理文件。", task.ID)
dirToRemove := filepath.Join(models.OTADir, fmt.Sprintf("%d", task.ID))
if removeErr := file.RemoveTempDir(dirToRemove); removeErr != nil {
logger.Warnf("清理超时的OTA任务 #%d 的文件目录 %s 失败: %v", task.ID, dirToRemove, removeErr)
}
}
}