123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- package services
- import (
- "eta/eta_api/cache"
- predictModel "eta/eta_api/models/ai_predict_model"
- "eta/eta_api/models/data_manage"
- "eta/eta_api/models/system"
- "eta/eta_api/utils"
- "fmt"
- "time"
- )
- // AddAiModelTrainTask
- // @Description: 添加模型训练任务
- // @author: Roc
- // @datetime 2025-05-08 14:28:13
- // @param aiIndex *predictModel.AiPredictModelIndex
- // @param indexConfig *predictModel.AiPredictModelIndexConfig
- // @param sysUser *system.Admin
- func AddAiModelTrainTask(aiIndex *predictModel.AiPredictModelIndex, indexConfig *predictModel.AiPredictModelIndexConfig, sysUser *system.Admin) {
- var err error
- defer func() {
- if err != nil {
- utils.FileLog.Error(fmt.Sprintf("AddAiModelTrainTask error: %s", err.Error()))
- }
- }()
- taskName := fmt.Sprintf("《%s》模型训练-%s", aiIndex.IndexName, time.Now().Format(utils.FormatShortDateTimeUnSpace))
- indexTask := &data_manage.IndexTask{
- IndexTaskID: 0,
- TaskName: taskName,
- TaskType: utils.INDEX_TASK_TYPE_AI_MODEL_TRAIN,
- Status: "待处理",
- //StartTime: time.Time{},
- //EndTime: time.Time{},
- CreateTime: time.Now(),
- UpdateTime: time.Now(),
- Logs: "",
- Errormessage: "",
- Priority: 0,
- RetryCount: 0,
- Remark: "",
- SysUserID: sysUser.AdminId,
- SysUserRealName: sysUser.RealName,
- }
- taskRecordList := make([]*data_manage.IndexTaskRecord, 0)
- taskRecord := &data_manage.IndexTaskRecord{
- IndexTaskRecordID: 0,
- IndexTaskID: 0,
- Parameters: fmt.Sprint(indexConfig.AiPredictModelIndexConfigId),
- Status: "待处理",
- Remark: "",
- ModifyTime: time.Now(),
- CreateTime: time.Now(),
- }
- taskRecordList = append(taskRecordList, taskRecord)
- // 创建AI模块的任务,用于后面的任务调度去生成摘要
- err = data_manage.AddIndexTask(indexTask, taskRecordList)
- if err != nil {
- return
- }
- // 添加到缓存队列中
- go addIndexTaskToCache(indexTask.IndexTaskID, indexTask.TaskType)
- return
- }
- // AddAiModelRunTask
- // @Description: 添加模型运行任务
- // @author: Roc
- // @datetime 2025-05-08 14:33:38
- // @param aiModelIndexIdList []int 标的模型ID列表
- // @param sysUser *system.Admin
- func AddAiModelRunTask(aiModelIndexIdList []int, sysUser *system.Admin) {
- var err error
- defer func() {
- if err != nil {
- utils.FileLog.Error(fmt.Sprintf("AddAiModelTrainTask error: %s", err.Error()))
- }
- }()
- taskName := fmt.Sprintf("模型运行-%s", time.Now().Format(utils.FormatShortDateTimeUnSpace))
- indexTask := &data_manage.IndexTask{
- IndexTaskID: 0,
- TaskName: taskName,
- TaskType: utils.INDEX_TASK_TYPE_AI_MODEL_RUN,
- Status: "待处理",
- //StartTime: time.Time{},
- //EndTime: time.Time{},
- CreateTime: time.Now(),
- UpdateTime: time.Now(),
- Logs: "",
- Errormessage: "",
- Priority: 0,
- RetryCount: 0,
- Remark: "",
- SysUserID: sysUser.AdminId,
- SysUserRealName: sysUser.RealName,
- }
- taskRecordList := make([]*data_manage.IndexTaskRecord, 0)
- for _, aiModelIndexId := range aiModelIndexIdList {
- taskRecord := &data_manage.IndexTaskRecord{
- IndexTaskRecordID: 0,
- IndexTaskID: 0,
- Parameters: fmt.Sprint(aiModelIndexId),
- Status: "待处理",
- Remark: "",
- ModifyTime: time.Now(),
- CreateTime: time.Now(),
- }
- taskRecordList = append(taskRecordList, taskRecord)
- }
- // 创建AI模块的任务,用于后面的任务调度去生成摘要
- err = data_manage.AddIndexTask(indexTask, taskRecordList)
- if err != nil {
- return
- }
- // 添加到缓存队列中
- go addIndexTaskToCache(indexTask.IndexTaskID, indexTask.TaskType)
- return
- }
- // addIndexTaskToCache
- // @Description: 根据任务ID将待处理的任务丢入到list中
- // @author: Roc
- // @datetime 2025-05-08 14:30:05
- // @param indexTaskId int
- // @param taskType string
- func addIndexTaskToCache(indexTaskId int, taskType string) {
- var err error
- defer func() {
- if err != nil {
- utils.FileLog.Error("addTaskToCache error: %v", err)
- }
- }()
- obj := data_manage.IndexTaskRecord{}
- list, err := obj.GetAllListByCondition(" index_task_record_id ", ` AND index_task_id = ? AND status = ? `, []interface{}{indexTaskId, `待处理`})
- if err != nil {
- return
- }
- for _, item := range list {
- cache.AddIndexTaskRecordOpToCache(item.IndexTaskRecordID, taskType)
- }
- }
- func AddIndexTaskToCache(indexTaskId int, taskType string) {
- addIndexTaskToCache(indexTaskId, taskType)
- }
|