添加任务状态常量

Former-commit-id: 455cee1f2dc483d3da320e32e1c7709b0ef123a8
This commit is contained in:
zhangwei 2023-11-02 18:37:35 +08:00
parent 1e89049f10
commit bc7288dc18
11 changed files with 23 additions and 134 deletions

View File

@ -2,6 +2,7 @@ package core
import ( import (
"context" "context"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/constants"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/models" "gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/models"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc" "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc"
@ -32,7 +33,7 @@ func (l *DeleteTaskLogic) DeleteTask(req *types.DeleteTaskReq) error {
return tx.Error return tx.Error
} }
// 将子任务状态修改为待删除 // 将子任务状态修改为待删除
tx = l.svcCtx.DbEngin.Model(&models.Cloud{}).Where("task_id", req.Id).Update("status", "WaitDelete") tx = l.svcCtx.DbEngin.Model(&models.Cloud{}).Where("task_id", req.Id).Update("status", constants.WaitDelete)
l.svcCtx.DbEngin.Where("task_id = ?", req.Id).Delete(&models.Cloud{}, req.Id) l.svcCtx.DbEngin.Where("task_id = ?", req.Id).Delete(&models.Cloud{}, req.Id)
if tx.Error != nil { if tx.Error != nil {
return tx.Error return tx.Error

View File

@ -62,7 +62,7 @@ func (l *TaskListLogic) TaskList(req *types.TaskListReq) (resp *types.TaskListRe
return nil, tx.Error return nil, tx.Error
} }
// 获取p端状态 // 获取p端状态
var pStatus string pStatus := "Unknown"
key := fmt.Sprintf("ps_%s-%d", pInfo.Address, pInfo.Id) key := fmt.Sprintf("ps_%s-%d", pInfo.Address, pInfo.Id)
hGetAll := l.svcCtx.RedisClient.HGetAll(l.ctx, key) hGetAll := l.svcCtx.RedisClient.HGetAll(l.ctx, key)
if hGetAll.Err() != nil { if hGetAll.Err() != nil {
@ -74,9 +74,8 @@ func (l *TaskListLogic) TaskList(req *types.TaskListReq) (resp *types.TaskListRe
return nil, err return nil, err
} }
if (time.Now().Unix() - parseInt) > 15 { if (time.Now().Unix() - parseInt) < 15 {
pStatus = "Unknown"
} else {
pStatus = "Normal" pStatus = "Normal"
} }
} }

View File

@ -1,6 +1,12 @@
package constants package constants
// 任务类型 // 任务状态类型
const ( const (
Saved = "Saved" Saved = "Saved"
Running = "Running"
WaitDelete = "WaitDelete"
Deleted = "Deleted"
Completed = "Completed"
Succeeded = "Succeeded"
Failed = "Failed"
) )

View File

@ -1,23 +0,0 @@
package enum
type AcStatus string
const (
statR AcStatus = "statR"
statC AcStatus = "statC"
statQ AcStatus = "statQ"
statW AcStatus = "statW"
)
func (s AcStatus) String() string {
switch s {
case statR:
return "Running"
case statC:
return "Completed"
case statQ, statW:
return "Pending"
default:
return ""
}
}

View File

@ -1,28 +0,0 @@
package enum
type ExternalStatus string
const (
EXTERNAL_RUNNING ExternalStatus = "running"
EXTERNAL_COMPLETED ExternalStatus = "completed"
EXTERNAL_PENDING ExternalStatus = "pending"
EXTERNAL_SUCCEEDED ExternalStatus = "succeeded"
EXTERNAL_FAILED ExternalStatus = "failed"
)
func (s ExternalStatus) String() string {
switch s {
case EXTERNAL_RUNNING:
return "Running"
case EXTERNAL_COMPLETED:
return "Completed"
case EXTERNAL_PENDING:
return "Pending"
case EXTERNAL_SUCCEEDED:
return "Succeeded"
case EXTERNAL_FAILED:
return "Failed"
default:
return ""
}
}

View File

@ -1,25 +0,0 @@
package enum
type Partner string
const (
AC Partner = "ac"
TH Partner = "th"
KubeNative Partner = "kubeNative"
ModelArts Partner = "modelArts"
)
func (p Partner) String() string {
switch p {
case AC:
return "曙光超算"
case KubeNative:
return "长沙云算"
case ModelArts:
return "南京智算"
case TH:
return "天河超算"
default:
return ""
}
}

View File

@ -1,19 +0,0 @@
package enum
type SynergyStatus int64
const (
SYNERGIZED SynergyStatus = 0
NOT_SYNERGIZED SynergyStatus = 1
)
func (s SynergyStatus) String() string {
switch s {
case SYNERGIZED:
return "已协同"
case NOT_SYNERGIZED:
return "未协同"
default:
return ""
}
}

View File

@ -1,25 +0,0 @@
package enum
type State uint32
const (
pending State = 0
running State = 1
suspended State = 2
completed State = 3
)
func (s State) String() string {
switch s {
case pending:
return "Pending"
case running:
return "Running"
case suspended:
return "Suspended"
case completed:
return "Completed"
default:
return ""
}
}

View File

@ -2,6 +2,7 @@ package cron
import ( import (
"github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/core/logx"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/constants"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/models" "gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/models"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/internal/svc" "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/internal/svc"
"gorm.io/gorm" "gorm.io/gorm"
@ -13,7 +14,7 @@ func InitCron(svc *svc.ServiceContext) {
svc.Cron.AddFunc("*/5 * * * * ?", func() { svc.Cron.AddFunc("*/5 * * * * ?", func() {
var tasks []models.Task var tasks []models.Task
svc.DbEngin.Not("status not in ?", []string{"Deleted", "Succeeded", "Completed", "Failed"}).Find(&tasks) svc.DbEngin.Not("status not in ?", []string{constants.Deleted, constants.Succeeded, constants.Completed, constants.Failed}).Find(&tasks)
for _, task := range tasks { for _, task := range tasks {
var allStatus string var allStatus string
tx := svc.DbEngin.Raw("SELECT CONCAT_WS(',',GROUP_CONCAT(DISTINCT h.status) ,GROUP_CONCAT(DISTINCT a.status) ,GROUP_CONCAT(DISTINCT c.status))as status from task t left join hpc h on t.id = h.task_id left join cloud c on t.id = c.task_id left join ai a on t.id = a.task_id where t.id = ?", task.Id).Scan(&allStatus) tx := svc.DbEngin.Raw("SELECT CONCAT_WS(',',GROUP_CONCAT(DISTINCT h.status) ,GROUP_CONCAT(DISTINCT a.status) ,GROUP_CONCAT(DISTINCT c.status))as status from task t left join hpc h on t.id = h.task_id left join cloud c on t.id = c.task_id left join ai a on t.id = a.task_id where t.id = ?", task.Id).Scan(&allStatus)
@ -27,12 +28,12 @@ func InitCron(svc *svc.ServiceContext) {
continue continue
} }
// 子任务包含失败状态 主任务则失败 // 子任务包含失败状态 主任务则失败
if strings.Contains(allStatus, "Failed") { if strings.Contains(allStatus, constants.Failed) {
updateTask(svc.DbEngin, &task, "Failed") updateTask(svc.DbEngin, &task, constants.Failed)
continue continue
} }
if strings.Contains(allStatus, "Running") { if strings.Contains(allStatus, constants.Running) {
updateTask(svc.DbEngin, &task, "Running") updateTask(svc.DbEngin, &task, constants.Running)
} }
} }

View File

@ -3,6 +3,7 @@ package pcmcorelogic
import ( import (
"context" "context"
"github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/core/logx"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/constants"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/models" "gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/models"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/utils" "gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/utils"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/client/pcmcore" "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/client/pcmcore"
@ -36,7 +37,7 @@ func (l *InfoListLogic) InfoList(in *pcmcore.InfoListReq) (*pcmcore.InfoListResp
var hpcModelList []models.Hpc var hpcModelList []models.Hpc
findModelList(in.ParticipantId, l.svcCtx.DbEngin, &hpcModelList) findModelList(in.ParticipantId, l.svcCtx.DbEngin, &hpcModelList)
utils.Convert(hpcModelList, &result.CloudInfoList) utils.Convert(hpcModelList, &result.CloudInfoList)
case "Kubernetes": case constants.Kubernetes:
var cloudModelList []models.Cloud var cloudModelList []models.Cloud
findModelList(in.ParticipantId, l.svcCtx.DbEngin, &cloudModelList) findModelList(in.ParticipantId, l.svcCtx.DbEngin, &cloudModelList)
utils.Convert(cloudModelList, &result.CloudInfoList) utils.Convert(cloudModelList, &result.CloudInfoList)

View File

@ -2,6 +2,7 @@ package pcmcorelogic
import ( import (
"context" "context"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/constants"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/internal/svc" "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/pcmCore" "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/pcmCore"
"time" "time"
@ -37,7 +38,7 @@ func (l *SyncInfoLogic) SyncInfo(in *pcmCore.SyncInfoReq) (*pcmCore.SyncInfoResp
var kind string var kind string
l.svcCtx.DbEngin.Raw("select type as kind from sc_participant_phy_info where id = ?", in.ParticipantId).Scan(&kind) l.svcCtx.DbEngin.Raw("select type as kind from sc_participant_phy_info where id = ?", in.ParticipantId).Scan(&kind)
switch kind { switch kind {
case "Kubernetes": case constants.Kubernetes:
for _, cloudInfo := range in.CloudInfoList { for _, cloudInfo := range in.CloudInfoList {
l.svcCtx.DbEngin.Exec("update cloud set status = ?,start_time = ?,running_time = ?,result = ? where participant_id = ? and task_id = ? and namespace = ? and name = ?", l.svcCtx.DbEngin.Exec("update cloud set status = ?,start_time = ?,running_time = ?,result = ? where participant_id = ? and task_id = ? and namespace = ? and name = ?",
cloudInfo.Status, cloudInfo.StartTime, cloudInfo.RunningTime, cloudInfo.Result, in.ParticipantId, cloudInfo.TaskId, cloudInfo.Namespace, cloudInfo.Name) cloudInfo.Status, cloudInfo.StartTime, cloudInfo.RunningTime, cloudInfo.Result, in.ParticipantId, cloudInfo.TaskId, cloudInfo.Namespace, cloudInfo.Name)