Versions in this module Expand all Collapse all v1 v1.2.3 Aug 25, 2022 v1.0.2 Aug 25, 2022 v1.0.1 Aug 25, 2022 Changes in this version + var ErrTaskAlreadyRun = errors.New("task already completed or failed") + var ErrTaskCanceled = errors.New("task canceled") + var ErrTaskNotFound = errors.New("task not found") + var ErrTaskNotSubmitted = errors.New("task not submitted") + type Engine interface + Cancel func(t *Task) error + Get func(traceId string) (*Task, error) + Recover func() error + Submit func(t *Task) (*Task, error) + Wait func(t *Task) error + func NewEngine(mgr Manager, runFn RunFunc, logger logr.Logger) Engine + type Manager interface + CasTaskStatus func(task *Task, old TaskStatus) (bool, error) + Close func() error + CreateTask func(task *Task) error + DeleteTask func(task *Task) error + GetCheckSum func(s string) string + GetLastTaskByOperationAndCheckSum func(op, checksum string) (*Task, error) + GetTaskById func(id int64) (*Task, error) + GetTaskByTraceId func(traceId string) (*Task, error) + ListTasks func(status ...TaskStatus) ([]Task, error) + UpdateTaskStatus func(task *Task) error + func NewTaskManager(dbFile string) (Manager, error) + type RunFunc func(ctx context.Context, t *Task) error + type Task struct + CheckSum string + Details string + ErrMsg string + GmtCreated time.Time + GmtModified time.Time + Id int64 + Operation string + Progress int + Status TaskStatus + TraceId string + func (t *Task) String() string + type TaskStatus int + const Cancel + const Canceling + const Complete + const Error + const Pending + const Running