实现关闭计划

This commit is contained in:
2025-09-22 15:17:54 +08:00
parent bd2d1c6b63
commit 4096499d28
5 changed files with 138 additions and 3 deletions

View File

@@ -29,6 +29,8 @@ type PendingTaskRepository interface {
ClaimNextAvailableTask(excludePlanIDs []uint) (*models.TaskExecutionLog, *models.PendingTask, error)
// RequeueTask 安全地将一个任务重新放回队列。
RequeueTask(originalPendingTask *models.PendingTask) error
// FindPendingTasksByTaskLogIDs 根据 TaskExecutionLogID 列表查找对应的待执行任务
FindPendingTasksByTaskLogIDs(taskLogIDs []uint) ([]models.PendingTask, error)
}
// gormPendingTaskRepository 是使用 GORM 的具体实现。
@@ -152,3 +154,13 @@ func (r *gormPendingTaskRepository) RequeueTask(originalPendingTask *models.Pend
return tx.Create(originalPendingTask).Error
})
}
// FindPendingTasksByTaskLogIDs 根据 TaskExecutionLogID 列表查找对应的待执行任务
func (r *gormPendingTaskRepository) FindPendingTasksByTaskLogIDs(taskLogIDs []uint) ([]models.PendingTask, error) {
if len(taskLogIDs) == 0 {
return []models.PendingTask{}, nil
}
var pendingTasks []models.PendingTask
err := r.db.Where("task_execution_log_id IN ?", taskLogIDs).Find(&pendingTasks).Error
return pendingTasks, err
}