fix: 网元重启事件触发跟踪任务重发任务id对不上
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user