35 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
|  | package interfaces | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"context" | ||
|  | 	"time" | ||
|  | 	"tyapi-server/internal/infrastructure/task/entities" | ||
|  | 	"tyapi-server/internal/infrastructure/task/types" | ||
|  | ) | ||
|  | 
 | ||
|  | // ApiTaskQueue API任务队列接口 | ||
|  | type ApiTaskQueue interface { | ||
|  | 	// Enqueue 入队任务 | ||
|  | 	Enqueue(ctx context.Context, taskType types.TaskType, payload types.TaskPayload) error | ||
|  | 
 | ||
|  | 	// EnqueueDelayed 延时入队任务 | ||
|  | 	EnqueueDelayed(ctx context.Context, taskType types.TaskType, payload types.TaskPayload, delay time.Duration) error | ||
|  | 
 | ||
|  | 	// EnqueueAt 指定时间入队任务 | ||
|  | 	EnqueueAt(ctx context.Context, taskType types.TaskType, payload types.TaskPayload, scheduledAt time.Time) error | ||
|  | 
 | ||
|  | 	// Cancel 取消任务 | ||
|  | 	Cancel(ctx context.Context, taskID string) error | ||
|  | 
 | ||
|  | 	// ModifySchedule 修改任务调度时间 | ||
|  | 	ModifySchedule(ctx context.Context, taskID string, newScheduledAt time.Time) error | ||
|  | 
 | ||
|  | 	// GetTaskStatus 获取任务状态 | ||
|  | 	GetTaskStatus(ctx context.Context, taskID string) (*entities.AsyncTask, error) | ||
|  | 
 | ||
|  | 	// ListTasks 列出任务 | ||
|  | 	ListTasks(ctx context.Context, taskType types.TaskType, status entities.TaskStatus, limit int) ([]*entities.AsyncTask, error) | ||
|  | 
 | ||
|  | 	// EnqueueTask 入队任务(简化版本) | ||
|  | 	EnqueueTask(ctx context.Context, task *entities.AsyncTask) error | ||
|  | } |