From b34df2630a52c01c753f191cfd3dd3bd640bdc92 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 16 May 2025 14:13:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=BD=91=E5=85=83=E9=87=8D=E5=90=AF?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E8=A7=A6=E5=8F=91=E8=B7=9F=E8=B8=AA=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E9=87=8D=E5=8F=91=E4=BB=BB=E5=8A=A1id=E5=AF=B9?= =?UTF-8?q?=E4=B8=8D=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/fm/alarm.go | 2 +- src/modules/trace/repository/trace_task.go | 4 ++-- src/modules/trace/service/trace_task.go | 10 ++++++---- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/features/fm/alarm.go b/features/fm/alarm.go index 5a376527..a3e95865 100644 --- a/features/fm/alarm.go +++ b/features/fm/alarm.go @@ -485,7 +485,7 @@ func alarmEventNew(neInfo neModel.NeInfo, v Alarm) (neDataModel.AlarmEvent, erro } // 网元重启后,有跟踪任务的需要重新补发启动任务 if v.AlarmCode == constants.ALARM_EVENT_REBOOT { - traceService.NewTraceTask.RunUnstopped() + traceService.NewTraceTask.RunUnstopped(neInfo.NeType, neInfo.NeId) } return alarmEvent, nil } diff --git a/src/modules/trace/repository/trace_task.go b/src/modules/trace/repository/trace_task.go index 6a842431..0894c171 100644 --- a/src/modules/trace/repository/trace_task.go +++ b/src/modules/trace/repository/trace_task.go @@ -116,11 +116,11 @@ func (r TraceTask) SelectByIds(ids []int64) []model.TraceTask { } // SelectByUnstopped 查询未停止的任务补发 -func (r TraceTask) SelectByUnstopped() []model.TraceTask { +func (r TraceTask) SelectByUnstopped(neStr string) []model.TraceTask { rows := []model.TraceTask{} tx := db.DB("").Model(&model.TraceTask{}) // 构建查询条件 - tx = tx.Where("end_time > ?", time.Now().UnixMilli()) + tx = tx.Where("end_time > ? and ne_list like ?", time.Now().UnixMilli(), fmt.Sprintf("%%%s%%", neStr)) // 查询数据 if err := tx.Find(&rows).Error; err != nil { logger.Errorf("query find err => %v", err.Error()) diff --git a/src/modules/trace/service/trace_task.go b/src/modules/trace/service/trace_task.go index f47cd4ae..305fe2f0 100644 --- a/src/modules/trace/service/trace_task.go +++ b/src/modules/trace/service/trace_task.go @@ -202,8 +202,9 @@ func (r TraceTask) createTaskToNe(task *model.TraceTask, ignoreErr bool) error { return fmt.Errorf("ne list is empty") } // 生成任务ID - traceId := r.traceTaskRepository.LastID() + 1 // 生成任务ID < 65535 - task.TraceId = fmt.Sprint(traceId) + if task.TraceId == "" { + task.TraceId = fmt.Sprint(r.traceTaskRepository.LastID() + 1) // 生成任务ID < 65535 + } // 发送任务给网元 errNe := []string{} @@ -331,8 +332,9 @@ func (r TraceTask) DeleteByIds(ids []int64) (int64, error) { } // RunUnstopped 启动跟踪未停止的任务 -func (r TraceTask) RunUnstopped() { - tasks := r.traceTaskRepository.SelectByUnstopped() +func (r TraceTask) RunUnstopped(neType string, neId string) { + neStr := fmt.Sprintf("%s_%s", neType, neId) + tasks := r.traceTaskRepository.SelectByUnstopped(neStr) for _, task := range tasks { r.createTaskToNe(&task, true) }