task

package
v1.5.8 Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2026 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AbortedRetryError = "任务被取消"
	StateAborted      = "ABORTED"
)

Variables

View Source
var DesensitizationKeyList = []string{"password", "passwd", "token", "auth"}

Functions

func AppendVariable added in v1.4.3

func AppendVariable(i, key, value string) error

AppendVariable 创建或增加需要传递的变量,用于追加参数,该类型为列表

func BeforeExit added in v1.5.6

func BeforeExit()

func CreateTask added in v1.5.5

func CreateTask(job *Job, dbInstance db.Service, body []byte, user string) error

func CreateTaskContext

func CreateTaskContext(ctx iris.Context)

func GetRegisteredTaskNames added in v1.4.2

func GetRegisteredTaskNames() []string

func GetRunningTaskStatus added in v1.5.6

func GetRunningTaskStatus(ctx iris.Context)

func GetStatus added in v1.5.6

func GetStatus(id string) ([]string, error)

GetStatus 获取当前执行信息

func GetVariable added in v1.4.3

func GetVariable(i, key string) string

func HumanReadableResults

func HumanReadableResults(taskResults []*tasks.TaskResult) string

func InitWork

func InitWork(task Task, taskMap map[string]Func, f FinishInterface) (err error)

func LockError added in v1.4.2

func LockError(id string) error

func LockTaskState added in v1.4.2

func LockTaskState(id string, suffix ...string) error

LockTaskState Non-idempotent tasks require additional protection locks to use this module

func SetRecycleKeyExpireTime added in v1.5.6

func SetRecycleKeyExpireTime(id string, expire time.Duration) error

SetRecycleKeyExpireTime 设置步骤中任务需要使用的相关key的过期时间

func SetStatus added in v1.5.6

func SetStatus(id, value string) error

SetStatus 设置当前执行信息

func SetVariable added in v1.4.3

func SetVariable(i, key, value string) error

SetVariable 设置需要传递的变量,可以直接覆盖填写,该类型为字符串

Types

type FinishInterface added in v1.4.2

type FinishInterface interface {
	Success(string)
	Error(string)
	Abort(string)
}

type FinishStruct added in v1.4.2

type FinishStruct struct{}

func (*FinishStruct) Abort added in v1.4.2

func (f *FinishStruct) Abort(id string)

func (*FinishStruct) Error added in v1.4.2

func (f *FinishStruct) Error(id string)

func (*FinishStruct) Success added in v1.4.2

func (f *FinishStruct) Success(id string)

type Func added in v1.5.6

type Func struct {
	F      interface{}
	Cancel bool
}

type Job

type Job struct {
	ID         string    `gorm:"column:id;type:varchar(255);primary_key" json:"id"`
	CreateDate time.Time `gorm:"column:date;type:datetime" json:"date"`
	JobInfo
}

type JobInfo

type JobInfo struct {
	User        string    `gorm:"column:user;type:varchar(255)" json:"user"`
	ActiveStage int       `gorm:"column:active_stage;type:int" json:"active_stage"`
	TotalStage  int       `gorm:"column:total_stage;type:int" json:"total_stage"`
	Option      string    `gorm:"column:option;type:text" json:"option"`
	State       string    `gorm:"column:state;type:varchar(255)" json:"state"`
	FinishTime  time.Time `gorm:"column:finish_time;type:datetime" json:"finish_time"`
}

type RabbitMq

type RabbitMq struct {
	Host     string `required:"true" yaml:"host" json:"host" env:"task.mq.host"`
	Port     string `default:"5672" yaml:"port" json:"port" env:"task.mq.port"`
	Username string `required:"true" yaml:"username" json:"username" env:"task.mq.username"`
	Password string `required:"true" yaml:"password" json:"password" env:"task.mq.password"`
	Queue    string `default:"machinery_tasks" yaml:"queue" json:"queue" env:"task.mq.queue"`
	Exchange string `default:"machinery_exchange" yaml:"exchange" json:"exchange" env:"task.mq.exchange"`
}

type StatusObject added in v1.5.6

type StatusObject struct {
	ID        string    `json:"id"`
	Task      string    `json:"task"`
	Job       string    `json:"job"`
	Tag       string    `json:"tag"`
	Stage     int       `json:"stage"`
	StartTime time.Time `json:"start_time"`
	Output    string    `json:"output"`
}

type Step

type Step struct {
	ID         string    `gorm:"column:id;type:varchar(255);primary_key" json:"id"`
	JobId      string    `gorm:"column:job_id;type:varchar(255)" json:"job_id"`
	Job        Job       `gorm:"foreignKey:JobId;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"-"`
	CreateDate time.Time `gorm:"column:date;type:datetime" json:"date"`
	FinishTime time.Time `gorm:"column:finish_time;type:datetime" json:"finish_time"`
	Result     string    `gorm:"column:result;type:text" json:"result"`
	Error      string    `gorm:"column:error;type:text" json:"error"`
	State      string    `gorm:"column:state;type:varchar(255)" json:"state"`
	StepInfo
}

type StepInfo

type StepInfo struct {
	Name      string    `gorm:"column:name;type:varchar(255)" json:"name"`
	Tag       string    `gorm:"column:tag;type:varchar(255)" json:"tag"`
	Stage     int       `gorm:"column:stage;type:int" json:"stage"`
	Option    string    `gorm:"column:option;type:text" json:"option"`
	StartTime time.Time `gorm:"column:start_time;type:datetime" json:"start_time"`
}

type Task

type Task struct {
	Tag         string       `required:"true" yaml:"tag" json:"tag" env:"task.tag"`
	Concurrency int          `default:"10" yaml:"concurrency" json:"concurrency" env:"task.concurrency"`
	IsWorker    bool         `default:"false" yaml:"worker" json:"worker" env:"task.worker"`
	Redis       config.Redis `yaml:"redis" json:"redis"`
	RabbitMq    RabbitMq     `yaml:"mq" json:"mq"`
	// RunExpiration is Task running expiration time.
	// After the task start, the parameters and lock retention time will be recycled according to this time.
	// If the task fails and is blocked, the recycling time will increase exponentially.
	// The storage time is evaluated by the redis service pressure.
	// It is generally set to 5 minutes and is recommended to be no less than 60 seconds
	// and is recommended to be no more than 30 minute.
	RunExpiration int `default:"300" yaml:"results_expiration" json:"results_expiration" env:"task.results_expiration"`
	// LockExpiration is Task atomic protection lock expiration time.
	// Set according to the estimated maximum time for the task. You can set a longer time to enhance protection.
	LockExpiration int `default:"18000" yaml:"lock_expiration" json:"lock_expiration" env:"task.lock_expiration"`
	// VarExpiration is Task parameter expiration time.
	VarExpiration int `default:"3600" yaml:"var_expiration" json:"var_expiration" env:"task.var_expiration"`
}

Jump to

Keyboard shortcuts

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