45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package interfaces
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"time"
 | |
| 
 | |
| 	"tyapi-server/internal/infrastructure/task/entities"
 | |
| )
 | |
| 
 | |
| // TaskManager 任务管理器接口
 | |
| // 统一管理Asynq任务和AsyncTask实体的操作
 | |
| type TaskManager interface {
 | |
| 	// 创建并入队任务
 | |
| 	CreateAndEnqueueTask(ctx context.Context, task *entities.AsyncTask) error
 | |
| 	
 | |
| 	// 创建并入队延时任务
 | |
| 	CreateAndEnqueueDelayedTask(ctx context.Context, task *entities.AsyncTask, delay time.Duration) error
 | |
| 	
 | |
| 	// 取消任务
 | |
| 	CancelTask(ctx context.Context, taskID string) error
 | |
| 	
 | |
| 	// 更新任务调度时间
 | |
| 	UpdateTaskSchedule(ctx context.Context, taskID string, newScheduledAt time.Time) error
 | |
| 	
 | |
| 	// 获取任务状态
 | |
| 	GetTaskStatus(ctx context.Context, taskID string) (*entities.AsyncTask, error)
 | |
| 	
 | |
| 	// 更新任务状态
 | |
| 	UpdateTaskStatus(ctx context.Context, taskID string, status entities.TaskStatus, errorMsg string) error
 | |
| 	
 | |
| 	// 重试任务
 | |
| 	RetryTask(ctx context.Context, taskID string) error
 | |
| 	
 | |
| 	// 清理过期任务
 | |
| 	CleanupExpiredTasks(ctx context.Context, olderThan time.Time) error
 | |
| }
 | |
| 
 | |
| // TaskManagerConfig 任务管理器配置
 | |
| type TaskManagerConfig struct {
 | |
| 	RedisAddr     string
 | |
| 	MaxRetries    int
 | |
| 	RetryInterval time.Duration
 | |
| 	CleanupDays   int
 | |
| }
 |