- package cron
-
- import (
- "errors"
- "fmt"
- "github.com/zeromicro/go-zero/core/logx"
- "gitlink.org.cn/JointCloud/pcm-coordinator/internal/scheduler/service"
- "gitlink.org.cn/JointCloud/pcm-coordinator/internal/svc"
- "gitlink.org.cn/JointCloud/pcm-coordinator/internal/types"
- )
-
- func GetTaskList(svc *svc.ServiceContext) ([]*types.TaskModel, error) {
- limit := 10
- offset := 0
- var list []*types.TaskModel
- db := svc.DbEngin.Model(&types.TaskModel{}).Table("task")
-
- db = db.Where("deleted_at is null")
-
- //count total
- var total int64
- err := db.Count(&total).Error
- db.Limit(limit).Offset(offset)
-
- if err != nil {
- return nil, err
- }
- err = db.Order("created_time desc").Find(&list).Error
- if err != nil {
- return nil, err
- }
- return list, nil
- }
-
- func UpdateAiAdapterMaps(svc *svc.ServiceContext) {
- var aiType = "1"
- adapterIds, err := svc.Scheduler.AiStorages.GetAdapterIdsByType(aiType)
- if err != nil {
- msg := fmt.Sprintf("###UpdateAiAdapterMaps###, error: %v \n", err.Error())
- logx.Errorf(errors.New(msg).Error())
- return
- }
- if len(adapterIds) == 0 {
- return
- }
-
- for _, id := range adapterIds {
- clusters, err := svc.Scheduler.AiStorages.GetClustersByAdapterId(id)
- if err != nil {
- msg := fmt.Sprintf("###UpdateAiAdapterMaps###, error: %v \n", err.Error())
- logx.Errorf(errors.New(msg).Error())
- return
- }
- if len(clusters.List) == 0 {
- continue
- }
- if isAdapterExist(svc, id, len(clusters.List)) {
- continue
- } else {
- if isAdapterEmpty(svc, id) {
- exeClusterMap, colClusterMap, inferMap := service.InitAiClusterMap(&svc.Config, clusters.List)
- svc.Scheduler.AiService.AiExecutorAdapterMap[id] = exeClusterMap
- svc.Scheduler.AiService.AiCollectorAdapterMap[id] = colClusterMap
- svc.Scheduler.AiService.InferenceAdapterMap[id] = inferMap
- } else {
- svc.Scheduler.AiService.UpdateClusterMaps(&svc.Config, id, clusters.List)
- }
- }
- }
- }
-
- func isAdapterExist(svc *svc.ServiceContext, id string, clusterNum int) bool {
- emap, ok := svc.Scheduler.AiService.AiExecutorAdapterMap[id]
- cmap, ok2 := svc.Scheduler.AiService.AiCollectorAdapterMap[id]
- imap, ok3 := svc.Scheduler.AiService.InferenceAdapterMap[id]
-
- if ok && ok2 && ok3 {
- if len(emap) == clusterNum && len(cmap) == clusterNum && len(imap) == clusterNum {
- return true
- }
- }
- return false
- }
-
- func isAdapterEmpty(svc *svc.ServiceContext, id string) bool {
- _, ok := svc.Scheduler.AiService.AiExecutorAdapterMap[id]
- _, ok2 := svc.Scheduler.AiService.AiCollectorAdapterMap[id]
- _, ok3 := svc.Scheduler.AiService.InferenceAdapterMap[id]
- if !ok && !ok2 && !ok3 {
- return true
- }
- return false
- }
|