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

94 lines
2.3 KiB
Go
Raw Normal View History

2023-09-04 09:51:20 +08:00
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"
)
2023-09-04 09:51:20 +08:00
type TaskStatus interface{}
// 增加了新类型后需要在这里也同步添加
2023-09-04 09:51:20 +08:00
type TaskStatusConst interface {
TaskStatus | ScheduleTaskStatus | UploadImageTaskStatus | CacheMovePackageTaskStatus | CreatePackageTaskStatus | LoadPackageTaskStatus
2023-09-04 09:51:20 +08:00
}
// 增加了新类型后需要在这里也同步添加
var TaskStatusTypeUnion = types.NewTypeUnion[TaskStatus](
myreflect.TypeOf[ScheduleTaskStatus](),
myreflect.TypeOf[UploadImageTaskStatus](),
myreflect.TypeOf[CacheMovePackageTaskStatus](),
myreflect.TypeOf[CreatePackageTaskStatus](),
myreflect.TypeOf[LoadPackageTaskStatus](),
)
2023-09-04 14:10:56 +08:00
type ScheduleTaskStatus struct {
2023-09-04 09:51:20 +08:00
Status string `json:"status"`
2023-09-04 16:56:13 +08:00
Error string `json:"error"`
2023-09-04 09:51:20 +08:00
PCMJobID int64 `json:"pcmJobID"`
}
2023-09-04 16:56:13 +08:00
func NewScheduleTaskStatus(status string, err string, pcmJobID int64) ScheduleTaskStatus {
2023-09-04 14:10:56 +08:00
return ScheduleTaskStatus{
2023-09-04 09:51:20 +08:00
Status: status,
2023-09-04 16:56:13 +08:00
Error: err,
2023-09-04 09:51:20 +08:00
PCMJobID: pcmJobID,
}
}
2023-09-04 14:10:56 +08:00
type UploadImageTaskStatus struct {
Status string `json:"status"`
2023-09-04 16:56:13 +08:00
Error string `json:"error"`
2023-09-04 14:10:56 +08:00
ImageID int64 `json:"imageID"`
2023-09-04 09:51:20 +08:00
}
2023-09-04 16:56:13 +08:00
func NewUploadImageTaskStatus(status string, err string, imageID int64) UploadImageTaskStatus {
2023-09-04 14:10:56 +08:00
return UploadImageTaskStatus{
Status: status,
2023-09-04 16:56:13 +08:00
Error: err,
2023-09-04 14:10:56 +08:00
ImageID: imageID,
2023-09-04 09:51:20 +08:00
}
}
2023-09-04 16:48:46 +08:00
type CacheMovePackageTaskStatus struct {
Status string `json:"status"`
2023-09-04 16:56:13 +08:00
Error string `json:"error"`
2023-09-04 16:48:46 +08:00
}
2023-09-04 16:56:13 +08:00
func NewCacheMovePackageTaskStatus(status string, err string) CacheMovePackageTaskStatus {
2023-09-04 16:48:46 +08:00
return CacheMovePackageTaskStatus{
Status: status,
2023-09-04 16:56:13 +08:00
Error: err,
2023-09-04 16:48:46 +08:00
}
}
type CreatePackageTaskStatus struct {
Status string `json:"status"`
2023-09-04 16:56:13 +08:00
Error string `json:"error"`
2023-09-04 16:48:46 +08:00
PackageID int64 `json:"packageID"`
}
2023-09-04 16:56:13 +08:00
func NewCreatePackageTaskStatus(status string, err string, packageID int64) CreatePackageTaskStatus {
2023-09-04 16:48:46 +08:00
return CreatePackageTaskStatus{
Status: status,
2023-09-04 16:56:13 +08:00
Error: err,
2023-09-04 16:48:46 +08:00
PackageID: packageID,
}
}
type LoadPackageTaskStatus struct {
Status string `json:"status"`
2023-09-04 16:56:13 +08:00
Error string `json:"error"`
2023-09-04 16:48:46 +08:00
}
2023-09-04 16:56:13 +08:00
func NewLoadPackageTaskStatus(status string, err string) LoadPackageTaskStatus {
2023-09-04 16:48:46 +08:00
return LoadPackageTaskStatus{
Status: status,
2023-09-04 16:56:13 +08:00
Error: err,
2023-09-04 16:48:46 +08:00
}
}
func init() {
mq.RegisterUnionType(TaskStatusTypeUnion)
}