Signed-off-by: jagger <cossjie@foxmail.com>

Former-commit-id: 7fa31bdee9f6e6b578ab698024cd3ec432c7076b
This commit is contained in:
jagger 2024-05-08 18:38:54 +08:00
parent 40b55c952f
commit eedc344b40
6 changed files with 22 additions and 37 deletions

View File

@ -1174,7 +1174,7 @@ type TaskStatusResp {
Succeeded int `json:"Succeeded"` Succeeded int `json:"Succeeded"`
Failed int `json:"Failed"` Failed int `json:"Failed"`
Running int `json:"Running"` Running int `json:"Running"`
Pause int `json:"Pause"` Saved int `json:"Saved"`
} }
type TaskDetailsResp { type TaskDetailsResp {
@ -1182,7 +1182,7 @@ type TaskDetailsResp {
description string `json:"description"` description string `json:"description"`
StartTime string `json:"startTime"` StartTime string `json:"startTime"`
EndTime string `json:"endTime"` EndTime string `json:"endTime"`
Strategy int64 `json:"strategy,string"` Strategy int64 `json:"strategy"`
SynergyStatus int64 `json:"synergyStatus,string"` SynergyStatus int64 `json:"synergyStatus"`
ClusterInfos []*ClusterInfo `json:"clusterInfos"` ClusterInfos []*ClusterInfo `json:"clusterInfos"`
} }

View File

@ -77,7 +77,6 @@ func syncTask(gorm *gorm.DB, taskId int64) {
statusArray := strings.Split(allStatus, ",") statusArray := strings.Split(allStatus, ",")
if len(removeRepeatedElement(statusArray)) == 1 { if len(removeRepeatedElement(statusArray)) == 1 {
updateTask(gorm, taskId, statusArray[0]) updateTask(gorm, taskId, statusArray[0])
} }
// 子任务包含失败状态 主任务则失败 // 子任务包含失败状态 主任务则失败
if strings.Contains(allStatus, constants.Failed) { if strings.Contains(allStatus, constants.Failed) {
@ -85,26 +84,20 @@ func syncTask(gorm *gorm.DB, taskId int64) {
} }
if strings.Contains(allStatus, constants.Running) { if strings.Contains(allStatus, constants.Running) {
updateTaskRunning(gorm, taskId, constants.Running) updateTask(gorm, taskId, constants.Running)
} }
} }
func updateTask(gorm *gorm.DB, taskId int64, status string) { func updateTask(gorm *gorm.DB, taskId int64, status string) {
now := time.Now()
var task models.Task var task models.Task
gorm.Where("id = ? ", taskId).Find(&task) gorm.Where("id = ? ", taskId).Find(&task)
if task.Status != status { if task.Status != status {
task.Status = status task.Status = status
gorm.Updates(&task) if status == constants.Running {
} task.StartTime = &now
} }
func updateTaskRunning(gorm *gorm.DB, taskId int64, status string) {
var task models.Task
gorm.Where("id = ? ", taskId).Find(&task)
if task.Status != status {
task.Status = status
task.StartTime = time.Now().Format("2006-01-02 15:04:05")
gorm.Updates(&task) gorm.Updates(&task)
} }
} }

View File

@ -3,11 +3,11 @@ package core
import ( import (
"context" "context"
"github.com/pkg/errors" "github.com/pkg/errors"
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models"
"gorm.io/gorm"
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/svc" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/svc"
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types"
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models"
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/utils"
"gorm.io/gorm"
"github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/core/logx"
) )
@ -27,8 +27,8 @@ func NewTaskDetailsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *TaskD
} }
func (l *TaskDetailsLogic) TaskDetails(req *types.FId) (resp *types.TaskDetailsResp, err error) { func (l *TaskDetailsLogic) TaskDetails(req *types.FId) (resp *types.TaskDetailsResp, err error) {
resp = &types.TaskDetailsResp{}
var task models.Task task := &models.Task{}
if errors.Is(l.svcCtx.DbEngin.Where("id", req.Id).First(&task).Error, gorm.ErrRecordNotFound) { if errors.Is(l.svcCtx.DbEngin.Where("id", req.Id).First(&task).Error, gorm.ErrRecordNotFound) {
return nil, errors.New("记录不存在") return nil, errors.New("记录不存在")
} }
@ -48,14 +48,7 @@ func (l *TaskDetailsLogic) TaskDetails(req *types.FId) (resp *types.TaskDetailsR
if err != nil { if err != nil {
return resp, err return resp, err
} }
resp = &types.TaskDetailsResp{ utils.Convert(&task, &resp)
Name: task.Name, resp.ClusterInfos = cList
Description: task.Description,
StartTime: task.StartTime,
EndTime: task.EndTime,
Strategy: task.Strategy,
SynergyStatus: task.SynergyStatus,
ClusterInfos: cList,
}
return return
} }

View File

@ -93,13 +93,12 @@ func (l *TaskListLogic) TaskList(req *types.TaskListReq) (resp *types.TaskListRe
pStatus = "Normal" pStatus = "Normal"
} }
} }
resp.Tasks = append(resp.Tasks, types.Task{ resp.Tasks = append(resp.Tasks, types.Task{
Id: task.Id, Id: task.Id,
Name: task.Name, Name: task.Name,
Status: task.Status, Status: task.Status,
StartTime: task.StartTime, StartTime: task.StartTime.Format("2006-01-02 15:04:05"),
EndTime: task.EndTime, EndTime: task.EndTime.Format("2006-01-02 15:04:05"),
ParticipantId: pInfo.Id, ParticipantId: pInfo.Id,
ParticipantName: pInfo.Name, ParticipantName: pInfo.Name,
ParticipantStatus: pStatus, ParticipantStatus: pStatus,

View File

@ -1078,7 +1078,7 @@ type TaskStatusResp struct {
Succeeded int `json:"Succeeded"` Succeeded int `json:"Succeeded"`
Failed int `json:"Failed"` Failed int `json:"Failed"`
Running int `json:"Running"` Running int `json:"Running"`
Pause int `json:"Pause"` Saved int `json:"Saved"`
} }
type TaskDetailsResp struct { type TaskDetailsResp struct {
@ -1086,8 +1086,8 @@ type TaskDetailsResp struct {
Description string `json:"description"` Description string `json:"description"`
StartTime string `json:"startTime"` StartTime string `json:"startTime"`
EndTime string `json:"endTime"` EndTime string `json:"endTime"`
Strategy int64 `json:"strategy,string"` Strategy int64 `json:"strategy"`
SynergyStatus int64 `json:"synergyStatus,string"` SynergyStatus int64 `json:"synergyStatus"`
ClusterInfos []*ClusterInfo `json:"clusterInfos"` ClusterInfos []*ClusterInfo `json:"clusterInfos"`
} }

View File

@ -42,8 +42,8 @@ type (
Strategy int64 `db:"strategy"` // 策略 Strategy int64 `db:"strategy"` // 策略
SynergyStatus int64 `db:"synergy_status"` // 协同状态0-未协同、1-已协同) SynergyStatus int64 `db:"synergy_status"` // 协同状态0-未协同、1-已协同)
CommitTime time.Time `db:"commit_time"` // 提交时间 CommitTime time.Time `db:"commit_time"` // 提交时间
StartTime string `db:"start_time"` // 开始时间 StartTime *time.Time `db:"start_time"` // 开始时间
EndTime string `db:"end_time"` // 结束运行时间 EndTime *time.Time `db:"end_time"` // 结束运行时间
RunningTime int64 `db:"running_time"` // 已运行时间(单位秒) RunningTime int64 `db:"running_time"` // 已运行时间(单位秒)
YamlString string `db:"yaml_string"` YamlString string `db:"yaml_string"`
Result string `db:"result"` // 作业结果 Result string `db:"result"` // 作业结果