Documentation
¶
Index ¶
- Constants
- type CollectorInvoker
- type CollectorRequestHandler
- type ExecutorInvoker
- type ExecutorRequestHandler
- type ITaskCollectorCallback
- type ITaskCollectorSupport
- type ITaskExecutor
- type ITaskGenerator
- type ITaskSchedulerCallback
- type PluginBody
- type PluginConf
- type RegisterCollectorRequestHandler
- type RegisterExecutorRequestHandler
- type SubtaskBody
- type SubtaskIdType
- type SubtaskResult
- type SubtaskResultType
- type TaskCreator
- type TaskIdType
- type TaskInterationMode
- type TaskParam
- type TaskResult
- type TaskStatusData
- type TaskStatusType
Constants ¶
View Source
const ( SubtaskStatus_Running = 1 SubtaskStatus_Finished = 2 SubtaskStatus_Cancelled = 3 SubtaskStatus_Timeout = 4 )
子任务的运行状态
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CollectorInvoker ¶
type CollectorInvoker func([]SubtaskResult) error
collector service invoker for executor
type CollectorRequestHandler ¶
type CollectorRequestHandler func([]SubtaskResult) error
collector request handler for collector service
type ExecutorInvoker ¶
type ExecutorInvoker func([]SubtaskBody) error
executor service invoker for scheduler
type ExecutorRequestHandler ¶
type ExecutorRequestHandler func([]SubtaskBody) error
executor request handler for executor service
type ITaskCollectorCallback ¶
type ITaskCollectorCallback interface { // 每次返回一次结果, 调用一次方法 // 一个子任务执行完成后执行 AfterExecution(subtaskResult *SubtaskResult, support ITaskCollectorSupport) (bool, error) // 整个任务完成时执行 AfterTaskCompleted(taskId TaskIdType) (int, error) }
任务的结果采集接口
type ITaskCollectorSupport ¶
type ITaskCollectorSupport interface {
AddSubtask(*SubtaskBody) error
}
type ITaskExecutor ¶
type ITaskExecutor interface { // 实现子任务的操作 Execute(subtaskData *SubtaskBody, result *SubtaskResult) error // 通知接口退出 Cancel() error }
任务的执行接口 实现任务的主要操作
type ITaskGenerator ¶
type ITaskGenerator interface { // 任务开始时,通知接口开始执行生成操作 Begin(taskId TaskIdType, taskType uint32, taskData *TaskParam, oldStatus string) error // 任务结束时,通知接口进行清理 End(taskId TaskIdType) error // 通知接口取消生成操作 Cancel(taskId TaskIdType) error // 保存任务的生成状态 SaveStatus(taskId TaskIdType) (string, error) // 查询任务的生成进度 QueryProgress(taskId TaskIdType) (float32, error) // 获取下一个子任务 // 若无子任务,返回errordef.ErrNotFound; 否则返回nil; // 若生成完成,设置finished GetSubtask(taskId TaskIdType, subtaskData *SubtaskBody, finished *bool) error }
任务的生成接口 接口将任务分解为可以并行执行的子任务, 返回给任务框架
type ITaskSchedulerCallback ¶
type ITaskSchedulerCallback interface { // 在子任务被调度之前调用,可通过返回的bool来控制当前子任务是否被调度 BeforeDispatch(subtaskId SubtaskIdType, subtaskData *SubtaskBody) (bool, error) // 子任务被调度进入执行后执行 AfterDispatch(subtaskId SubtaskIdType) error }
任务的调度接口 响应一些调度操作
type PluginBody ¶
type PluginBody struct { Generator ITaskGenerator Executor ITaskExecutor SchedulerCallback ITaskSchedulerCallback CollectorCallback ITaskCollectorCallback }
PluginBody 表示任务的执行体
type PluginConf ¶
type PluginConf struct { IterationMode TaskInterationMode // 任务支持的迭代模式 TaskTypeTimeout time.Duration // 此任务类型的最大执行时间限制 }
PluginConf 记录任务插件的配置信息
type RegisterCollectorRequestHandler ¶
type RegisterCollectorRequestHandler func(CollectorRequestHandler) error
type RegisterExecutorRequestHandler ¶
type RegisterExecutorRequestHandler func(ExecutorRequestHandler) error
type SubtaskBody ¶
type SubtaskBody struct { SubtaskId SubtaskIdType `json:"subtask_id"` // 子任务ID TaskId TaskIdType `json:"task_id"` // 所属的任务ID TaskType uint32 `json:"task_type"` // 任务类型 Timeout uint32 `json:"timeout"` // 子任务的超时值, 秒 TypeParam string `json:"type_param"` // 子任务与类型相关的参数数, json CreatedAt time.Time `json:"created_at"` // 子任务创建的时间 TerminatedAt time.Time `json:"terminated_at"` // 子任务结束的时间 }
子任务的参数体
type SubtaskIdType ¶
type SubtaskIdType uint64
定义子任务ID的类型
func (SubtaskIdType) MarshalBinary ¶
func (id SubtaskIdType) MarshalBinary() (data []byte, err error)
Marshal
func (*SubtaskIdType) UnmarshalBinary ¶
func (id *SubtaskIdType) UnmarshalBinary(data []byte) error
Unmarshal
type SubtaskResult ¶
type SubtaskResult struct { SubtaskId SubtaskIdType `json:"subtask_id"` // 子任务ID TaskId TaskIdType `json:"task_id"` // 所属的任务ID Result SubtaskResultType `json:"result"` // 子任务的结果 ResultCode uint32 `json:"result_code"` // 子任务的结果码 ResultMsg string `json:"result_msg"` // 原因 ResultBody string `json:"result_body"` // 子任务与类型相关的结果数据 }
子任务执行的结果
type SubtaskResultType ¶
type SubtaskResultType uint32
子任务结果类型
const ( SubtaskResult_Success SubtaskResultType = 1 // 子任务执行成功 SubtaskResult_Failure SubtaskResultType = 2 // 子任务执行失败 SubtaskResult_Timeout SubtaskResultType = 3 // 子任务超时 )
type TaskCreator ¶
type TaskCreator struct { UID uint64 `json:"uid"` // 用户id, 由调用者自行定义 Name string `json:"name"` // 用户名, 同调用者自行定义 }
任务创建者结构
type TaskIdType ¶
type TaskIdType uint64
定义任务ID的类型
func (TaskIdType) MarshalBinary ¶
func (taskId TaskIdType) MarshalBinary() (data []byte, err error)
Marshal
func (*TaskIdType) UnmarshalBinary ¶
func (taskId *TaskIdType) UnmarshalBinary(data []byte) error
Unmarshal
type TaskInterationMode ¶
type TaskInterationMode int
迭代模式
const ( IterationMode_No TaskInterationMode = 1 // 不支持迭代 IterationMode_UseCollector TaskInterationMode = 2 // 支持子任务迭代 )
type TaskParam ¶
type TaskParam struct { Creator TaskCreator `json:"creator"` // 任务创建者 ResourceGroup string `json:"resource_group"` // 任务所属的资源组名称 Priority uint32 `json:"priority"` // 任务的基础优先级 TaskName string `json:"task_name"` // 任务名 Description string `json:"description"` // 任务描述 TaskType uint32 `json:"task_type"` // 任务类型 Timeout time.Duration `json:"timeout"` // 任务的超时值 TypeParam string `json:"type_param"` // 任务的自定义参数 }
任务的创建参数
type TaskResult ¶
type TaskResult struct { TaskId TaskIdType `json:"task_id"` // 任务ID Result TaskStatusType `json:"result"` // 任务的结果 ResultCode uint32 `json:"result_code"` // 任务的结果码 Reason string `json:"reason"` // 结果描述 ResultData string `json:"result_data"` // 与任务类型相关的结果数据 }
任务的执行结果
type TaskStatusData ¶
type TaskStatusData struct { TaskId TaskIdType `json:"task_id"` // 任务ID TaskType uint32 `json:"task_type"` // 任务类型 TaskStatus TaskStatusType `json:"task_status"` // 任务的状态 TaskProgress float32 `json:"task_progress"` // 任务执行的进度 Priority uint32 `json:"priority"` // 任务优先级 SubtaskCount uint32 `json:"subtask_count"` // 任务包含的子任务数量 StartTime time.Time `json:"start_time"` // 任务的开始时间 ResourceGroup string `json:"resource_group"` // 任务所属的资源组名 TaskName string `json:"task_name"` // 任务名 }
任务的执行状态数据
type TaskStatusType ¶
type TaskStatusType uint32
任务状态的类型
const ( TaskStatus_Created TaskStatusType = 1 // 已创建 TaskStatus_Running TaskStatusType = 2 // 运行中 TaskStatus_Paused TaskStatusType = 3 // 暂停中 TaskStatus_Cacelled TaskStatusType = 4 // 已取消 TaskStatus_Completed TaskStatusType = 5 // 已完成 TaskStatus_Exceptional TaskStatusType = 6 // 异常 )
Click to show internal directories.
Click to hide internal directories.