123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- package ai_predict_model
- import (
- "eta/eta_index_lib/models"
- "eta/eta_index_lib/models/ai_predict_model"
- "eta/eta_index_lib/utils"
- "fmt"
- "time"
- )
- // HandleTaskRecordFailByTaskRecord
- // @Description: 任务标记失败
- // @author: Roc
- // @datetime 2025-05-09 16:24:48
- // @param taskType string
- // @param indexTaskRecordInfo *models.IndexTaskRecord
- // @param indexConfigItem *ai_predict_model.AiPredictModelIndexConfig
- // @param indexItem *ai_predict_model.AiPredictModelIndex
- // @param errMsg string
- func HandleTaskRecordFailByTaskRecord(taskType string, indexTaskRecordInfo *models.IndexTaskRecord, indexConfigItem *ai_predict_model.AiPredictModelIndexConfig, indexItem *ai_predict_model.AiPredictModelIndex, errMsg string) {
- var err error
- defer func() {
- if err != nil {
- utils.FileLog.Error(fmt.Sprintf(`HandleTaskRecordFailByTaskRecord err:%v`, err))
- }
- }()
- // 修改子任务状态
- indexTaskRecordInfo.Status = `处理失败`
- indexTaskRecordInfo.Remark = errMsg
- indexTaskRecordInfo.ModifyTime = time.Now()
- err = indexTaskRecordInfo.Update([]string{"status", "remark", "modify_time"})
- if err != nil {
- fmt.Println("修改子任务状态失败!")
- return
- }
- // 处理完成后标记任务状态
- defer func() {
- obj := models.IndexTaskRecord{}
- // 修改任务状态
- todoCount, tmpErr := obj.GetCountByCondition(fmt.Sprintf(` AND %s = ? AND %s = ? `, models.IndexTaskRecordColumns.IndexTaskID, models.IndexTaskRecordColumns.Status), []interface{}{indexTaskRecordInfo.IndexTaskID, `待处理`})
- if tmpErr != nil {
- err = fmt.Errorf("查找剩余任务数量失败, err: %s", tmpErr.Error())
- return
- }
- if todoCount <= 0 {
- indexTaskObj := models.IndexTask{}
- indexTaskInfo, tmpErr := indexTaskObj.GetByID(indexTaskRecordInfo.IndexTaskID)
- if tmpErr != nil {
- err = fmt.Errorf("查找任务失败, err: %s", tmpErr.Error())
- return
- }
- tmpUpdateCols := []string{`end_time`, "status", "update_time"}
- indexTaskInfo.EndTime = time.Now()
- indexTaskInfo.Status = `处理成功`
- indexTaskInfo.UpdateTime = time.Now()
- if indexTaskInfo.StartTime.IsZero() {
- indexTaskInfo.StartTime = time.Now()
- tmpUpdateCols = append(tmpUpdateCols, "start_time")
- }
- tmpErr = indexTaskInfo.Update(tmpUpdateCols)
- if tmpErr != nil {
- utils.FileLog.Error("标记任务状态失败, err: %s", tmpErr.Error())
- }
- }
- return
- }()
- // 修改模型状态
- switch taskType {
- case utils.INDEX_TASK_TYPE_AI_MODEL_TRAIN: // 训练模型
- // 修改模型状态信息
- if indexItem != nil {
- indexItem.TrainStatus = ai_predict_model.TrainStatusFailed
- indexItem.ModifyTime = time.Now()
- tmpErr := indexItem.Update([]string{"train_status", "modify_time"})
- if tmpErr != nil {
- utils.FileLog.Error("%d,修改模型训练状态失败, err: %s", indexItem.AiPredictModelIndexId, tmpErr.Error())
- }
- }
- // 修改模型配置状态信息
- if indexConfigItem != nil {
- indexConfigItem.TrainStatus = ai_predict_model.TrainStatusFailed
- indexConfigItem.Remark = errMsg
- indexConfigItem.ModifyTime = time.Now()
- tmpErr := indexConfigItem.Update([]string{"train_status", `remark`, "modify_time"})
- if tmpErr != nil {
- utils.FileLog.Error("%d,修改模型训练状态失败, err: %s", indexItem.AiPredictModelIndexId, tmpErr.Error())
- }
- }
- case utils.INDEX_TASK_TYPE_AI_MODEL_RUN: // 运行模型
- if indexItem != nil {
- indexItem.RunStatus = ai_predict_model.RunStatusFailed
- indexItem.ModifyTime = time.Now()
- tmpErr := indexItem.Update([]string{"run_status", "modify_time"})
- if tmpErr != nil {
- utils.FileLog.Error("%d,修改模型运行状态失败, err: %s", indexItem.AiPredictModelIndexId, tmpErr.Error())
- }
- }
- default:
- return
- }
- return
- }
- // HandleTaskRecordProcessingByTaskRecord
- // @Description: 任务标记处理中
- // @author: Roc
- // @datetime 2025-05-09 16:24:38
- // @param taskType string
- // @param indexTaskRecordInfo *models.IndexTaskRecord
- // @param indexConfigItem *ai_predict_model.AiPredictModelIndexConfig
- // @param indexItem *ai_predict_model.AiPredictModelIndex
- func HandleTaskRecordProcessingByTaskRecord(taskType string, indexTaskRecordInfo *models.IndexTaskRecord, indexConfigItem *ai_predict_model.AiPredictModelIndexConfig, indexItem *ai_predict_model.AiPredictModelIndex) {
- var err error
- defer func() {
- if err != nil {
- utils.FileLog.Error(fmt.Sprintf(`HandleTaskRecordFailByTaskRecord err:%v`, err))
- }
- }()
- // 修改子任务状态
- indexTaskRecordInfo.Status = `处理中`
- indexTaskRecordInfo.ModifyTime = time.Now()
- err = indexTaskRecordInfo.Update([]string{"status", "modify_time"})
- if err != nil {
- fmt.Println("修改子任务状态失败!")
- return
- }
- // 处理完成后标记任务状态
- defer func() {
- obj := models.IndexTaskRecord{}
- // 修改任务状态
- todoCount, tmpErr := obj.GetCountByCondition(fmt.Sprintf(` AND %s = ? AND %s = ? `, models.IndexTaskRecordColumns.IndexTaskID, models.IndexTaskRecordColumns.Status), []interface{}{indexTaskRecordInfo.IndexTaskID, `待处理`})
- if tmpErr != nil {
- err = fmt.Errorf("查找剩余任务数量失败, err: %s", tmpErr.Error())
- return
- }
- if todoCount <= 0 {
- indexTaskObj := models.IndexTask{}
- indexTaskInfo, tmpErr := indexTaskObj.GetByID(indexTaskRecordInfo.IndexTaskID)
- if tmpErr != nil {
- err = fmt.Errorf("查找任务失败, err: %s", tmpErr.Error())
- return
- }
- tmpUpdateCols := []string{`end_time`, "status", "update_time"}
- indexTaskInfo.EndTime = time.Now()
- indexTaskInfo.Status = `处理中`
- indexTaskInfo.UpdateTime = time.Now()
- if indexTaskInfo.StartTime.IsZero() {
- indexTaskInfo.StartTime = time.Now()
- tmpUpdateCols = append(tmpUpdateCols, "start_time")
- }
- tmpErr = indexTaskInfo.Update(tmpUpdateCols)
- if tmpErr != nil {
- utils.FileLog.Error("标记任务状态失败, err: %s", tmpErr.Error())
- }
- }
- return
- }()
- // 修改模型状态
- switch taskType {
- case utils.INDEX_TASK_TYPE_AI_MODEL_TRAIN: // 训练模型
- // 修改模型状态信息
- if indexItem != nil {
- indexItem.TrainStatus = ai_predict_model.TrainStatusTraining
- indexItem.ModifyTime = time.Now()
- tmpErr := indexItem.Update([]string{"train_status", "modify_time"})
- if tmpErr != nil {
- utils.FileLog.Error("%d,修改模型训练状态失败, err: %s", indexItem.AiPredictModelIndexId, tmpErr.Error())
- }
- }
- // 修改模型配置状态信息
- if indexConfigItem != nil {
- indexConfigItem.TrainStatus = ai_predict_model.TrainStatusTraining
- indexConfigItem.ModifyTime = time.Now()
- tmpErr := indexConfigItem.Update([]string{"train_status", "modify_time"})
- if tmpErr != nil {
- utils.FileLog.Error("%d,修改模型训练状态失败, err: %s", indexItem.AiPredictModelIndexId, tmpErr.Error())
- }
- }
- case utils.INDEX_TASK_TYPE_AI_MODEL_RUN: // 运行模型
- // 修改模型状态信息
- if indexItem != nil {
- indexItem.RunStatus = ai_predict_model.RunStatusRunning
- indexItem.ModifyTime = time.Now()
- tmpErr := indexItem.Update([]string{"run_status", "modify_time"})
- if tmpErr != nil {
- utils.FileLog.Error("%d,修改模型运行状态失败, err: %s", indexItem.AiPredictModelIndexId, tmpErr.Error())
- }
- }
- default:
- return
- }
- return
- }
|