forked from JointCloud/JCC-CSScheduler
48 lines
1.4 KiB
Go
48 lines
1.4 KiB
Go
package manager
|
|
|
|
import (
|
|
"gitlink.org.cn/cloudream/common/pkgs/mq"
|
|
schmod "gitlink.org.cn/cloudream/scheduler/common/models"
|
|
exectsk "gitlink.org.cn/cloudream/scheduler/common/pkgs/mq/executor/task"
|
|
)
|
|
|
|
type ExecutorService interface {
|
|
ReportExecutorTaskStatus(msg *ReportExecutorTaskStatus) (*ReportExecutorTaskStatusResp, *mq.CodeMessage)
|
|
}
|
|
|
|
// 接收executor上报的存活状态及任务执行情况
|
|
var _ = Register(Service.ReportExecutorTaskStatus)
|
|
|
|
type ReportExecutorTaskStatus struct {
|
|
mq.MessageBodyBase
|
|
ExecutorID schmod.ExecutorID `json:"executorID"`
|
|
TaskStatus []ExecutorTaskStatus `json:"taskStatus"`
|
|
}
|
|
|
|
type ReportExecutorTaskStatusResp struct {
|
|
mq.MessageBodyBase
|
|
}
|
|
type ExecutorTaskStatus struct {
|
|
TaskID string
|
|
Status exectsk.TaskStatus
|
|
}
|
|
|
|
func NewReportExecutorTaskStatus(executorID schmod.ExecutorID, taskStatus []ExecutorTaskStatus) *ReportExecutorTaskStatus {
|
|
return &ReportExecutorTaskStatus{
|
|
ExecutorID: executorID,
|
|
TaskStatus: taskStatus,
|
|
}
|
|
}
|
|
func NewReportExecutorTaskStatusResp() *ReportExecutorTaskStatusResp {
|
|
return &ReportExecutorTaskStatusResp{}
|
|
}
|
|
func NewExecutorTaskStatus(taskID string, status exectsk.TaskStatus) ExecutorTaskStatus {
|
|
return ExecutorTaskStatus{
|
|
TaskID: taskID,
|
|
Status: status,
|
|
}
|
|
}
|
|
func (c *Client) ReportExecutorTaskStatus(msg *ReportExecutorTaskStatus, opts ...mq.RequestOption) (*ReportExecutorTaskStatusResp, error) {
|
|
return mq.Request(Service.ReportExecutorTaskStatus, c.roundTripper, msg, opts...)
|
|
}
|