forked from JointCloud/pcm-coordinator
58 lines
851 B
Go
58 lines
851 B
Go
package fifo
|
|
|
|
import "strings"
|
|
|
|
const (
|
|
CLOUD string = "Cloud"
|
|
AI string = "Ai"
|
|
HPC string = "Hpc"
|
|
)
|
|
|
|
type TaskFIFO struct {
|
|
Queues []*Queue
|
|
}
|
|
|
|
// NewChannel 初始化队列
|
|
func NewChannel() *TaskFIFO {
|
|
channel := TaskFIFO{
|
|
Queues: []*Queue{
|
|
{
|
|
ResourceType: CLOUD,
|
|
},
|
|
{
|
|
ResourceType: AI,
|
|
},
|
|
{
|
|
ResourceType: HPC,
|
|
},
|
|
},
|
|
}
|
|
|
|
return &channel
|
|
}
|
|
|
|
// SelectQueue 根据资源类型查询队列数组
|
|
func (c *TaskFIFO) SelectQueue(resourceType string) *Queue {
|
|
for _, queue := range c.Queues {
|
|
if strings.EqualFold(queue.ResourceType, resourceType) {
|
|
return queue
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func main() {
|
|
channel := NewChannel()
|
|
cloudQueue := channel.SelectQueue("cloud")
|
|
|
|
dataList := []IData{
|
|
&Data{
|
|
TaskType: "cloud",
|
|
Data: &Cloud{}},
|
|
}
|
|
|
|
cloudQueue.Push(&dataList)
|
|
|
|
println(len(dataList))
|
|
}
|