JCC-CSScheduler/common/pkgs/mq/advisor/task/task.go

41 lines
1013 B
Go

package task
import (
"gitlink.org.cn/cloudream/common/pkgs/types"
myreflect "gitlink.org.cn/cloudream/common/utils/reflect"
)
type TaskStatus interface {
Noop()
}
type TaskStatusBase struct{}
func (b *TaskStatusBase) Noop() {}
// 增加了新类型后需要在这里也同步添加
var TaskStatusTypeUnion = types.NewTypeUnion[TaskStatus](
myreflect.TypeOf[ScheduleSchemeTaskStatus](),
)
type ScheduleSchemeTaskStatus struct {
TaskStatusBase
Status string `json:"status"`
Error string `json:"error"`
IsAdjustment bool `json:"isAdjustment"`
AdjustedScheme AdjustedScheme `json:"adjustedScheme"`
}
type AdjustedScheme struct {
NodeID int64 `json:"nodeID"`
}
func NewScheduleSchemeTaskStatus(status string, err string, isAdjustment bool, adjustedScheme AdjustedScheme) *ScheduleSchemeTaskStatus {
return &ScheduleSchemeTaskStatus{
Status: status,
Error: err,
IsAdjustment: isAdjustment,
AdjustedScheme: adjustedScheme,
}
}