Documentation
¶
Index ¶
- Constants
- Variables
- func AppendVariable(i, key, value string) error
- func BeforeExit()
- func CreateTask(job *Job, dbInstance db.Service, body []byte, user string) error
- func CreateTaskContext(ctx iris.Context)
- func GetRegisteredTaskNames() []string
- func GetRunningTaskStatus(ctx iris.Context)
- func GetStatus(id string) ([]string, error)
- func GetVariable(i, key string) string
- func HumanReadableResults(taskResults []*tasks.TaskResult) string
- func InitWork(task Task, taskMap map[string]Func, f FinishInterface) (err error)
- func LockError(id string) error
- func LockTaskState(id string, suffix ...string) error
- func SetRecycleKeyExpireTime(id string, expire time.Duration) error
- func SetStatus(id, value string) error
- func SetVariable(i, key, value string) error
- type FinishInterface
- type FinishStruct
- type Func
- type Job
- type JobInfo
- type RabbitMq
- type StatusObject
- type Step
- type StepInfo
- type Task
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
AppendVariable 创建或增加需要传递的变量,用于追加参数,该类型为列表
func BeforeExit ¶ added in v1.5.6
func BeforeExit()
func CreateTask ¶ added in v1.5.5
func CreateTaskContext ¶
func GetRegisteredTaskNames ¶ added in v1.4.2
func GetRegisteredTaskNames() []string
func GetRunningTaskStatus ¶ added in v1.5.6
func GetVariable ¶ added in v1.4.3
func HumanReadableResults ¶
func HumanReadableResults(taskResults []*tasks.TaskResult) string
func LockTaskState ¶ added in v1.4.2
LockTaskState Non-idempotent tasks require additional protection locks to use this module
func SetRecycleKeyExpireTime ¶ added in v1.5.6
SetRecycleKeyExpireTime 设置步骤中任务需要使用的相关key的过期时间
func SetVariable ¶ added in v1.4.3
SetVariable 设置需要传递的变量,可以直接覆盖填写,该类型为字符串
Types ¶
type FinishInterface ¶ added in v1.4.2
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 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 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"`
}
Click to show internal directories.
Click to hide internal directories.