JCC-CSScheduler/manager/internal/jobmgr/event.go

63 lines
1.1 KiB
Go

package jobmgr
import (
"errors"
schsdk "gitlink.org.cn/cloudream/common/sdks/scheduler"
)
// 不是所关注的Task上报的进度
var ErrUnconcernedTask = errors.New("unconcerned task")
var ErrTaskTimeout = errors.New("task timeout")
var ErrJobCancelled = errors.New("job cancelled")
type Event interface{}
type BroadcastType string
const (
BroadcastAll BroadcastType = "All"
BroadcastJobSet BroadcastType = "JobSet"
BroadcastJob BroadcastType = "Job"
)
type Broadcast struct {
Type BroadcastType
JobSetID schsdk.JobSetID
JobID schsdk.JobID
}
func (b *Broadcast) ToAll() bool {
return b.Type == BroadcastAll
}
func (b *Broadcast) ToJobSet() bool {
return b.Type == BroadcastJobSet
}
func (b *Broadcast) ToJob() bool {
return b.Type == BroadcastJob
}
func ToAll() Broadcast {
return Broadcast{
Type: BroadcastAll,
}
}
func ToJobSet(jobSetID schsdk.JobSetID) Broadcast {
return Broadcast{
Type: BroadcastJobSet,
JobSetID: jobSetID,
}
}
func ToJob(jobID schsdk.JobID) Broadcast {
return Broadcast{
Type: BroadcastJob,
JobID: jobID,
}
}