package l_export_async import ( "context" "time" ) type TaskInfo struct { taskSaveTool TaskSaveTool // 任务状态存储(如 Redis) } type TaskErr interface { Err() error } type TaskGet interface { TaskErr Val() string } type TaskSaveTool interface { Set(ctx context.Context, key string, value interface{}, expiration time.Duration) TaskErr Del(ctx context.Context, keys ...string) TaskErr Get(ctx context.Context, key string) TaskGet } func NewTask(taskSaveTool TaskSaveTool) *TaskInfo { return &TaskInfo{ taskSaveTool: taskSaveTool, } } func (t *TaskInfo) GetTaskInfo(ctx context.Context, taskId string) TaskGet { return t.taskSaveTool.Get(ctx, taskId) }