| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package task
- import (
- "context"
- "time"
- )
- // TaskStatus 定义任务状态
- type TaskStatus string
- const (
- TaskPending TaskStatus = "pending" // 等待中
- TaskRunning TaskStatus = "running" // 运行中
- TaskSuccess TaskStatus = "success" // 成功
- TaskFailed TaskStatus = "failed" // 失败
- TaskCancelled TaskStatus = "cancelled" // 已取消
- )
- // Task 表示一个可执行任务
- type Task struct {
- ID string // 任务唯一标识
- Type string // 任务类型(如"backup", "repair"等)
- Source string // 任务来源(如"mysql:conn1", "redis:conn2"等)
- Status TaskStatus // 任务状态
- Progress int // 进度百分比 0-100
- Result any // 执行结果
- Error string // 错误信息
- CreatedAt time.Time // 创建时间
- StartedAt *time.Time // 开始时间
- CompletedAt *time.Time // 完成时间
- }
- // TaskFunc 定义任务执行函数类型
- // progress参数用于更新任务进度(0-100)
- type TaskFunc func(ctx context.Context, progress func(int)) (any, error)
- // TaskOption 任务选项函数
- type TaskOption func(*Task)
- // WithSource 设置任务来源
- func WithSource(source string) TaskOption {
- return func(t *Task) {
- t.Source = source
- }
- }
- // WithType 设置任务类型
- func WithType(taskType string) TaskOption {
- return func(t *Task) {
- t.Type = taskType
- }
- }
|