|
- package ai
-
- import (
- "context"
- "sort"
-
- "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/svc"
- "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types"
-
- "github.com/zeromicro/go-zero/core/logx"
- )
-
- type GetCenterQueueingLogic struct {
- logx.Logger
- ctx context.Context
- svcCtx *svc.ServiceContext
- }
-
- func NewGetCenterQueueingLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetCenterQueueingLogic {
- return &GetCenterQueueingLogic{
- Logger: logx.WithContext(ctx),
- ctx: ctx,
- svcCtx: svcCtx,
- }
- }
-
- func (l *GetCenterQueueingLogic) GetCenterQueueing() (resp *types.CenterQueueingResp, err error) {
- resp = &types.CenterQueueingResp{}
-
- adapters, err := l.svcCtx.Scheduler.AiStorages.GetAdaptersByType("1")
- if err != nil {
- return nil, err
- }
-
- for _, adapter := range adapters {
- clusters, err := l.svcCtx.Scheduler.AiStorages.GetClustersByAdapterId(adapter.Id)
- if err != nil {
- continue
- }
- for _, cluster := range clusters.List {
- queues, err := l.svcCtx.Scheduler.AiStorages.GetClusterTaskQueues(adapter.Id, cluster.Id)
- if err != nil {
- continue
- }
- //todo sync current task queues
- current := &types.CenterQueue{
- Name: cluster.Name,
- QueueingNum: int32(queues[0].QueueNum),
- }
- history := &types.CenterQueue{
- Name: cluster.Name,
- QueueingNum: int32(queues[0].QueueNum),
- }
- resp.Current = append(resp.Current, current)
- resp.History = append(resp.History, history)
-
- }
- }
-
- sortQueueingNum(resp.Current)
- sortQueueingNum(resp.History)
-
- return resp, nil
- }
-
- func sortQueueingNum(q []*types.CenterQueue) {
- sort.Slice(q, func(i, j int) bool {
- return q[i].QueueingNum > q[j].QueueingNum
- })
- }
|