Documentation
¶
Index ¶
- Constants
- Variables
- func NewErrorEvent(msg string, taskId string) *types.Set[*event.EventSpec]
- func NewInfoEvent(msg string, taskId string) *types.Set[*event.EventSpec]
- func StatusCompleteString() []string
- type CONTEXT_TASK_KEY
- type DescribeTaskRequest
- type QueryTaskRequest
- type STATUS
- type Service
- type TYPE
- type Task
- type TaskFunc
- type TaskSpec
- type TaskStatus
Constants ¶
View Source
const (
APP_NAME = "tasks"
)
View Source
const (
EVENT_LABLE_TASK_ID = "task_id"
)
Variables ¶
View Source
var ( STATUS_MAP = map[STATUS]string{ STATUS_PENDING: "PENDDING", STATUS_RUNNING: "RUNNING", STATUS_SUCCESS: "SUCCESS", STATUS_FAILED: "FAILED", STATUS_CANCELED: "CANCELED", } STATUS_COMPLETE = []STATUS{ STATUS_SUCCESS, STATUS_FAILED, STATUS_CANCELED, } )
View Source
var (
DEFAULT_TIMEOUT = time.Second * 30
)
Functions ¶
func StatusCompleteString ¶
func StatusCompleteString() []string
Types ¶
type CONTEXT_TASK_KEY ¶
type CONTEXT_TASK_KEY struct{}
type DescribeTaskRequest ¶
type DescribeTaskRequest struct {
TaskId string `json:"task_id"`
}
func NewDescribeTaskRequest ¶
func NewDescribeTaskRequest(taskId string) *DescribeTaskRequest
type QueryTaskRequest ¶
type QueryTaskRequest struct {
}
type Service ¶
type Service interface {
// 任务执行
Run(context.Context, *TaskSpec) *Task
// 查询任务列表
QueryTask(context.Context, *QueryTaskRequest) (*types.Set[*Task], error)
// 查询任务详情
DescribeTask(context.Context, *DescribeTaskRequest) (*Task, error)
}
func GetService ¶
func GetService() Service
type Task ¶
type Task struct {
// 任务Id
Id string `json:"id" gorm:"column:id;type:string;primary_key;" unique:"true" description:"Id"`
// 创建时间
CreatedAt time.Time `` /* 126-byte string literal not displayed */
// 任务定义
TaskSpec
// 任务状态
TaskStatus
}
func GetTaskFromCtx ¶
type TaskSpec ¶
type TaskSpec struct {
// 是否异步执行
Async bool `json:"async" gorm:"column:async;" description:"是否异步执行"`
// 异步执行时的超时时间
Timeout string `json:"timeout" gorm:"column:timeout;" description:"异步执行时的超时时间"`
// 任务类型
Type TYPE `json:"type" gorm:"column:id;type:varchar(60);" description:"任务类型"`
// 任务的参数
Params any `json:"params" gorm:"column:params;serializer:json;type:json" description:"任务参数"`
// 任务标签
Label map[string]string `json:"label" bson:"label" gorm:"column:label;serializer:json;type:json" description:"任务标签" optional:"true"`
// 任务执行结束回调
WebHooks []*webhook.WebHook `` /* 138-byte string literal not displayed */
// contains filtered or unexported fields
}
type TaskStatus ¶
type TaskStatus struct {
// 开始执行时间
StartAt *time.Time `json:"start_at" gorm:"column:start_at;type:timestamp;" description:"开始执行时间"`
// 执行结束的时间
EndAt *time.Time `json:"end_at" gorm:"column:end_at;type:timestamp;" description:"执行结束的时间"`
// 任务状态更新时间
UpdateAt *time.Time `json:"update_at" gorm:"column:update_at;type:timestamp;" description:"任务状态更新时间"`
// 任务执行状态
Status STATUS `json:"status" gorm:"column:status;type:tinyint(2);" description:"任务执行状态"`
// 失败信息
Message string `json:"message" gorm:"column:message;type:text;" description:"失败信息"`
// 执行过程中的事件, 执行日志
Events []*event.Event `json:"events" gorm:"column:events;type:json;serializer:json;" description:"执行过程中的事件"`
}
func NewTaskStatus ¶
func NewTaskStatus() *TaskStatus
func (*TaskStatus) SetEndAt ¶
func (s *TaskStatus) SetEndAt(t time.Time)
func (*TaskStatus) SetStartAt ¶
func (s *TaskStatus) SetStartAt(t time.Time)
func (*TaskStatus) SetUpdateAt ¶
func (s *TaskStatus) SetUpdateAt(t time.Time)
Click to show internal directories.
Click to hide internal directories.