feat: 添加任务标题字段,优化跟踪任务的创建和查询功能
This commit is contained in:
@@ -177,6 +177,19 @@ func (r TraceTask) FindById(id int64) model.TraceTask {
|
||||
|
||||
// Insert 新增信息
|
||||
func (r TraceTask) Insert(task model.TraceTask) error {
|
||||
if err := r.createTaskToNe(&task, false); err != nil {
|
||||
return err
|
||||
}
|
||||
// 插入数据库
|
||||
insertId := r.traceTaskRepository.Insert(task)
|
||||
if insertId <= 0 {
|
||||
return fmt.Errorf("insert task error")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// CreateTaskToNe 创建任务到网元
|
||||
func (r TraceTask) createTaskToNe(task *model.TraceTask, ignoreErr bool) error {
|
||||
// 跟踪配置是否开启
|
||||
host, port, err := r.traceNotify()
|
||||
if err != nil {
|
||||
@@ -193,6 +206,7 @@ func (r TraceTask) Insert(task model.TraceTask) error {
|
||||
task.TraceId = fmt.Sprint(traceId)
|
||||
|
||||
// 发送任务给网元
|
||||
errNe := []string{}
|
||||
for _, neTypeID := range neList {
|
||||
neTypeIDArr := strings.Split(neTypeID, "_")
|
||||
if len(neTypeIDArr) != 2 {
|
||||
@@ -204,18 +218,28 @@ func (r TraceTask) Insert(task model.TraceTask) error {
|
||||
logger.Warnf("ne type id is not exist")
|
||||
continue
|
||||
}
|
||||
if err := r.createTaskToNe(neInfo, task); err != nil {
|
||||
logger.Errorf("task to %s error: %s", neTypeID, err.Error())
|
||||
return fmt.Errorf("task to %s error: %s", neTypeID, err.Error())
|
||||
if err := r.traceNeTask(neInfo, *task); err != nil {
|
||||
logger.Errorf("ne type id is %s to %s error: %s", task.TraceId, neTypeID, err.Error())
|
||||
errNe = append(errNe, neTypeID)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
// 插入数据库
|
||||
insertId := r.traceTaskRepository.Insert(task)
|
||||
if insertId <= 0 {
|
||||
return fmt.Errorf("insert task error")
|
||||
if len(errNe) <= 0 && !ignoreErr {
|
||||
return nil
|
||||
}
|
||||
return nil
|
||||
// 移除任务
|
||||
for _, neTypeID := range neList {
|
||||
neTypeIDArr := strings.Split(neTypeID, "_")
|
||||
if len(neTypeIDArr) != 2 {
|
||||
continue
|
||||
}
|
||||
neInfo := neService.NewNeInfo.SelectNeInfoByNeTypeAndNeID(neTypeIDArr[0], neTypeIDArr[1])
|
||||
if neInfo.NeType != neTypeIDArr[0] || neInfo.IP == "" {
|
||||
continue
|
||||
}
|
||||
neFetchlink.NeTraceDelete(neInfo, task.TraceId)
|
||||
}
|
||||
return fmt.Errorf("task to ne error: %s", strings.Join(errNe, ","))
|
||||
}
|
||||
|
||||
// traceNotify 网元通知地址
|
||||
@@ -234,8 +258,8 @@ func (r TraceTask) traceNotify() (string, int64, error) {
|
||||
return host, port, nil
|
||||
}
|
||||
|
||||
// createTaskToNe 网元创建任务
|
||||
func (r TraceTask) createTaskToNe(neInfo neModel.NeInfo, task model.TraceTask) error {
|
||||
// traceNeTask 网元创建任务
|
||||
func (r TraceTask) traceNeTask(neInfo neModel.NeInfo, task model.TraceTask) error {
|
||||
data := model.TraceReq{
|
||||
TraceId: parse.Number(task.TraceId),
|
||||
NotifyUrl: task.NotifyUrl,
|
||||
@@ -305,3 +329,11 @@ func (r TraceTask) DeleteByIds(ids []int64) (int64, error) {
|
||||
// 删除信息失败!
|
||||
return 0, fmt.Errorf("delete fail")
|
||||
}
|
||||
|
||||
// RunUnstopped 启动跟踪未停止的任务
|
||||
func (r TraceTask) RunUnstopped() {
|
||||
tasks := r.traceTaskRepository.SelectByUnstopped()
|
||||
for _, task := range tasks {
|
||||
r.createTaskToNe(&task, true)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user