task

package
v1.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 25, 2022 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrTaskNotFound     = errors.New("task not found")
	ErrTaskNotSubmitted = errors.New("task not submitted")
	ErrTaskCanceled     = errors.New("task canceled")
	ErrTaskAlreadyRun   = errors.New("task already completed or failed")
)

Functions

This section is empty.

Types

type Engine

type Engine interface {
	Recover() error
	Get(traceId string) (*Task, error)
	Submit(t *Task) (*Task, error)
	Wait(t *Task) error
	Cancel(t *Task) error
}

Task status FSM:

Pending -> Running -> Complete
                   -> Error
                   -> Canceling -> Cancel
        -> Cancel

func NewEngine

func NewEngine(mgr Manager, runFn RunFunc, logger logr.Logger) Engine

type Manager

type Manager interface {
	GetCheckSum(s string) string
	CreateTask(task *Task) error
	UpdateTaskStatus(task *Task) error
	CasTaskStatus(task *Task, old TaskStatus) (bool, error)
	GetTaskById(id int64) (*Task, error)
	GetTaskByTraceId(traceId string) (*Task, error)
	GetLastTaskByOperationAndCheckSum(op, checksum string) (*Task, error)
	DeleteTask(task *Task) error
	ListTasks(status ...TaskStatus) ([]Task, error)
	Close() error
}

func NewTaskManager

func NewTaskManager(dbFile string) (Manager, error)

type RunFunc

type RunFunc func(ctx context.Context, t *Task) error

type Task

type Task struct {
	Id          int64
	GmtCreated  time.Time
	GmtModified time.Time
	TraceId     string
	Operation   string
	Details     string
	CheckSum    string
	Progress    int
	Status      TaskStatus
	ErrMsg      string
}

func (*Task) String

func (t *Task) String() string

type TaskStatus

type TaskStatus int
const (
	Pending   TaskStatus = 0
	Running   TaskStatus = 1
	Complete  TaskStatus = 2
	Error     TaskStatus = 3
	Canceling TaskStatus = 4
	Cancel    TaskStatus = 5
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL