63 lines
1.1 KiB
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,
|
|
}
|
|
}
|