forked from JointCloud/JCC-CSScheduler
94 lines
2.3 KiB
Go
94 lines
2.3 KiB
Go
package task
|
|
|
|
import (
|
|
"gitlink.org.cn/cloudream/common/pkgs/mq"
|
|
"gitlink.org.cn/cloudream/common/pkgs/types"
|
|
myreflect "gitlink.org.cn/cloudream/common/utils/reflect"
|
|
)
|
|
|
|
type TaskStatus interface{}
|
|
|
|
// 增加了新类型后需要在这里也同步添加
|
|
type TaskStatusConst interface {
|
|
TaskStatus | ScheduleTaskStatus | UploadImageTaskStatus | CacheMovePackageTaskStatus | CreatePackageTaskStatus | LoadPackageTaskStatus
|
|
}
|
|
|
|
// 增加了新类型后需要在这里也同步添加
|
|
var TaskStatusTypeUnion = types.NewTypeUnion[TaskStatus](
|
|
myreflect.TypeOf[ScheduleTaskStatus](),
|
|
myreflect.TypeOf[UploadImageTaskStatus](),
|
|
myreflect.TypeOf[CacheMovePackageTaskStatus](),
|
|
myreflect.TypeOf[CreatePackageTaskStatus](),
|
|
myreflect.TypeOf[LoadPackageTaskStatus](),
|
|
)
|
|
|
|
type ScheduleTaskStatus struct {
|
|
Status string `json:"status"`
|
|
Error string `json:"error"`
|
|
PCMJobID int64 `json:"pcmJobID"`
|
|
}
|
|
|
|
func NewScheduleTaskStatus(status string, err string, pcmJobID int64) ScheduleTaskStatus {
|
|
return ScheduleTaskStatus{
|
|
Status: status,
|
|
Error: err,
|
|
PCMJobID: pcmJobID,
|
|
}
|
|
}
|
|
|
|
type UploadImageTaskStatus struct {
|
|
Status string `json:"status"`
|
|
Error string `json:"error"`
|
|
ImageID int64 `json:"imageID"`
|
|
}
|
|
|
|
func NewUploadImageTaskStatus(status string, err string, imageID int64) UploadImageTaskStatus {
|
|
return UploadImageTaskStatus{
|
|
Status: status,
|
|
Error: err,
|
|
ImageID: imageID,
|
|
}
|
|
}
|
|
|
|
type CacheMovePackageTaskStatus struct {
|
|
Status string `json:"status"`
|
|
Error string `json:"error"`
|
|
}
|
|
|
|
func NewCacheMovePackageTaskStatus(status string, err string) CacheMovePackageTaskStatus {
|
|
return CacheMovePackageTaskStatus{
|
|
Status: status,
|
|
Error: err,
|
|
}
|
|
}
|
|
|
|
type CreatePackageTaskStatus struct {
|
|
Status string `json:"status"`
|
|
Error string `json:"error"`
|
|
PackageID int64 `json:"packageID"`
|
|
}
|
|
|
|
func NewCreatePackageTaskStatus(status string, err string, packageID int64) CreatePackageTaskStatus {
|
|
return CreatePackageTaskStatus{
|
|
Status: status,
|
|
Error: err,
|
|
PackageID: packageID,
|
|
}
|
|
}
|
|
|
|
type LoadPackageTaskStatus struct {
|
|
Status string `json:"status"`
|
|
Error string `json:"error"`
|
|
}
|
|
|
|
func NewLoadPackageTaskStatus(status string, err string) LoadPackageTaskStatus {
|
|
return LoadPackageTaskStatus{
|
|
Status: status,
|
|
Error: err,
|
|
}
|
|
}
|
|
|
|
func init() {
|
|
mq.RegisterUnionType(TaskStatusTypeUnion)
|
|
}
|