pcm-core任务状态同步方式修改

This commit is contained in:
zhangwei 2023-04-27 14:51:56 +08:00
parent 74931f6c48
commit 9a83185142
1 changed files with 10 additions and 7 deletions

View File

@ -4,6 +4,7 @@ import (
"PCM/adaptor/PCM-CORE/model"
"PCM/adaptor/PCM-CORE/rpc/internal/svc"
"github.com/zeromicro/go-zero/core/logx"
"gorm.io/gorm"
"strings"
)
@ -21,26 +22,28 @@ func InitCron(svc *svc.ServiceContext) {
// 子状态统一则修改主任务状态
statusArray := strings.Split(allStatus, ",")
if len(RemoveRepeatedElement(statusArray)) == 1 {
task.Status = statusArray[0]
svc.DbEngin.Updates(&task)
updateTask(svc.DbEngin, &task, statusArray[0])
continue
}
// 子任务包含失败状态 主任务则失败
if strings.Contains(allStatus, "Failed") {
task.Status = "Failed"
svc.DbEngin.Updates(&task)
updateTask(svc.DbEngin, &task, "Failed")
continue
}
if strings.Contains(allStatus, "Running") {
task.Status = "Running"
svc.DbEngin.Updates(&task)
updateTask(svc.DbEngin, &task, "Running")
}
}
})
}
func updateTask(dbEngin *gorm.DB, task *model.Task, status string) {
if task.Status != status {
dbEngin.Updates(&task)
}
}
func RemoveRepeatedElement(arr []string) (newArr []string) {
newArr = make([]string, 0)
for i := 0; i < len(arr); i++ {