uint/uint64全部改为uint32
This commit is contained in:
@@ -16,27 +16,27 @@ import (
|
||||
// PendingTaskRepository 定义了与待执行任务队列交互的接口。
|
||||
type PendingTaskRepository interface {
|
||||
FindAllPendingTasks(ctx context.Context) ([]models.PendingTask, error)
|
||||
FindPendingTriggerByPlanID(ctx context.Context, planID uint) (*models.PendingTask, error)
|
||||
DeletePendingTasksByIDs(ctx context.Context, ids []uint) error
|
||||
FindPendingTriggerByPlanID(ctx context.Context, planID uint32) (*models.PendingTask, error)
|
||||
DeletePendingTasksByIDs(ctx context.Context, ids []uint32) error
|
||||
CreatePendingTask(ctx context.Context, task *models.PendingTask) error
|
||||
CreatePendingTasksInBatch(ctx context.Context, tasks []*models.PendingTask) error
|
||||
|
||||
// UpdatePendingTaskExecuteAt 更新指定待执行任务的执行时间
|
||||
UpdatePendingTaskExecuteAt(ctx context.Context, id uint, executeAt time.Time) error
|
||||
UpdatePendingTaskExecuteAt(ctx context.Context, id uint32, executeAt time.Time) error
|
||||
|
||||
// ClearAllPendingTasks 清空所有待执行任务
|
||||
ClearAllPendingTasks(ctx context.Context) error
|
||||
|
||||
// ClaimNextAvailableTask 原子地认领下一个可用的任务。
|
||||
// 它会同时返回被认领任务对应的日志对象,以及被删除的待办任务对象的内存副本。
|
||||
ClaimNextAvailableTask(ctx context.Context, excludePlanIDs []uint) (*models.TaskExecutionLog, *models.PendingTask, error)
|
||||
ClaimNextAvailableTask(ctx context.Context, excludePlanIDs []uint32) (*models.TaskExecutionLog, *models.PendingTask, error)
|
||||
// RequeueTask 安全地将一个任务重新放回队列。
|
||||
RequeueTask(ctx context.Context, originalPendingTask *models.PendingTask) error
|
||||
// FindPendingTasksByTaskLogIDs 根据 TaskExecutionLogID 列表查找对应的待执行任务
|
||||
FindPendingTasksByTaskLogIDs(ctx context.Context, taskLogIDs []uint) ([]models.PendingTask, error)
|
||||
FindPendingTasksByTaskLogIDs(ctx context.Context, taskLogIDs []uint32) ([]models.PendingTask, error)
|
||||
|
||||
// DeletePendingTasksByPlanLogID 删除与指定计划执行日志ID相关的所有待执行任务
|
||||
DeletePendingTasksByPlanLogID(ctx context.Context, planLogID uint) error
|
||||
DeletePendingTasksByPlanLogID(ctx context.Context, planLogID uint32) error
|
||||
}
|
||||
|
||||
// gormPendingTaskRepository 是使用 GORM 的具体实现。
|
||||
@@ -59,7 +59,7 @@ func (r *gormPendingTaskRepository) FindAllPendingTasks(ctx context.Context) ([]
|
||||
return tasks, err
|
||||
}
|
||||
|
||||
func (r *gormPendingTaskRepository) FindPendingTriggerByPlanID(ctx context.Context, planID uint) (*models.PendingTask, error) {
|
||||
func (r *gormPendingTaskRepository) FindPendingTriggerByPlanID(ctx context.Context, planID uint32) (*models.PendingTask, error) {
|
||||
repoCtx := logs.AddFuncName(ctx, r.ctx, "FindPendingTriggerByPlanID")
|
||||
var pendingTask models.PendingTask
|
||||
// 关键修改:通过 JOIN tasks 表并查询 parameters JSON 字段来查找触发器,而不是依赖 task.plan_id
|
||||
@@ -73,7 +73,7 @@ func (r *gormPendingTaskRepository) FindPendingTriggerByPlanID(ctx context.Conte
|
||||
return &pendingTask, err
|
||||
}
|
||||
|
||||
func (r *gormPendingTaskRepository) DeletePendingTasksByIDs(ctx context.Context, ids []uint) error {
|
||||
func (r *gormPendingTaskRepository) DeletePendingTasksByIDs(ctx context.Context, ids []uint32) error {
|
||||
repoCtx := logs.AddFuncName(ctx, r.ctx, "DeletePendingTasksByIDs")
|
||||
if len(ids) == 0 {
|
||||
return nil
|
||||
@@ -96,7 +96,7 @@ func (r *gormPendingTaskRepository) CreatePendingTasksInBatch(ctx context.Contex
|
||||
}
|
||||
|
||||
// UpdatePendingTaskExecuteAt 更新指定待执行任务的执行时间
|
||||
func (r *gormPendingTaskRepository) UpdatePendingTaskExecuteAt(ctx context.Context, id uint, executeAt time.Time) error {
|
||||
func (r *gormPendingTaskRepository) UpdatePendingTaskExecuteAt(ctx context.Context, id uint32, executeAt time.Time) error {
|
||||
repoCtx := logs.AddFuncName(ctx, r.ctx, "UpdatePendingTaskExecuteAt")
|
||||
return r.db.WithContext(repoCtx).Model(&models.PendingTask{}).Where("id = ?", id).Update("execute_at", executeAt).Error
|
||||
}
|
||||
@@ -108,7 +108,7 @@ func (r *gormPendingTaskRepository) ClearAllPendingTasks(ctx context.Context) er
|
||||
}
|
||||
|
||||
// ClaimNextAvailableTask 以原子方式认领下一个可用的任务。
|
||||
func (r *gormPendingTaskRepository) ClaimNextAvailableTask(ctx context.Context, excludePlanIDs []uint) (*models.TaskExecutionLog, *models.PendingTask, error) {
|
||||
func (r *gormPendingTaskRepository) ClaimNextAvailableTask(ctx context.Context, excludePlanIDs []uint32) (*models.TaskExecutionLog, *models.PendingTask, error) {
|
||||
repoCtx := logs.AddFuncName(ctx, r.ctx, "ClaimNextAvailableTask")
|
||||
var log models.TaskExecutionLog
|
||||
var pendingTask models.PendingTask
|
||||
@@ -175,7 +175,7 @@ func (r *gormPendingTaskRepository) RequeueTask(ctx context.Context, originalPen
|
||||
}
|
||||
|
||||
// FindPendingTasksByTaskLogIDs 根据 TaskExecutionLogID 列表查找对应的待执行任务
|
||||
func (r *gormPendingTaskRepository) FindPendingTasksByTaskLogIDs(ctx context.Context, taskLogIDs []uint) ([]models.PendingTask, error) {
|
||||
func (r *gormPendingTaskRepository) FindPendingTasksByTaskLogIDs(ctx context.Context, taskLogIDs []uint32) ([]models.PendingTask, error) {
|
||||
repoCtx := logs.AddFuncName(ctx, r.ctx, "FindPendingTasksByTaskLogIDs")
|
||||
if len(taskLogIDs) == 0 {
|
||||
return []models.PendingTask{}, nil
|
||||
@@ -186,7 +186,7 @@ func (r *gormPendingTaskRepository) FindPendingTasksByTaskLogIDs(ctx context.Con
|
||||
}
|
||||
|
||||
// DeletePendingTasksByPlanLogID 删除与指定计划执行日志ID相关的所有待执行任务
|
||||
func (r *gormPendingTaskRepository) DeletePendingTasksByPlanLogID(ctx context.Context, planLogID uint) error {
|
||||
func (r *gormPendingTaskRepository) DeletePendingTasksByPlanLogID(ctx context.Context, planLogID uint32) error {
|
||||
repoCtx := logs.AddFuncName(ctx, r.ctx, "DeletePendingTasksByPlanLogID")
|
||||
// 使用子查询找到所有与 planLogID 相关的 task_execution_log_id
|
||||
subQuery := r.db.WithContext(repoCtx).Model(&models.TaskExecutionLog{}).Select("id").Where("plan_execution_log_id = ?", planLogID)
|
||||
|
||||
Reference in New Issue
Block a user