36 lines
683 B
Go
36 lines
683 B
Go
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)
|
||
}
|