浏览代码

优化同步指标功能和任务调度- 调整了SyncGnIndex函数中的日志输出顺序,增加任务准备和开始的提示
- 优化了handleClassify函数,增加了对空分类名的处理
- 新增getClassifyName函数,用于规范化分类名称
- 移除了task.go中的SyncGnIndex调用,避免非必要的指标同步任务
- 在task_gn.go中添加了GnTask函数,用于执行指标相关的定时任务,并在任务开始时初始化一次SyncGnIndex

Roc 5 月之前
父节点
当前提交
1aa8b0fd20
共有 3 个文件被更改,包括 45 次插入8 次删除
  1. 39 6
      services/eta_bridge/gn.go
  2. 0 2
      services/task.go
  3. 6 0
      services/task_gn.go

+ 39 - 6
services/eta_bridge/gn.go

@@ -41,9 +41,10 @@ type CurrClassify struct {
 // @param cont context.Context
 // @return err error
 func SyncGnIndex(cont context.Context) (err error) {
-	fmt.Println("开始同步指标")
+	fmt.Println("准备同步指标")
 	lockSyncGnIndex.Lock()
 	errMsgList := make([]string, 0)
+	fmt.Println("开始同步指标")
 
 	defer func() {
 		if err != nil {
@@ -247,13 +248,20 @@ func syncGnIndex(currIndex, pageSize int, baseLastUpdateTimeStr string) (err err
 // @return err
 func handleIndex(index IndexInfo) (err error) {
 	// 处理分类(如果不存在就创建)
-	_, _, thirdClassifyId, err := handleClassify(index)
+	oneClassifyId, twoClassifyId, thirdClassifyId, err := handleClassify(index)
 	if err != nil {
 		return
 	}
 
+	classifyId := thirdClassifyId
+	if classifyId <= 0 {
+		classifyId = twoClassifyId
+	}
+	if classifyId <= 0 {
+		classifyId = oneClassifyId
+	}
 	// 处理指标(如果不存在就创建)
-	err = handleEdbInfo(index, thirdClassifyId)
+	err = handleEdbInfo(index, classifyId)
 
 	return
 }
@@ -266,9 +274,9 @@ func handleIndex(index IndexInfo) (err error) {
 // @return thirdClassifyId
 // @return err
 func handleClassify(index IndexInfo) (firstClassifyId, secondClassifyId, thirdClassifyId int64, err error) {
-	firstClassifyName := strings.TrimSpace(index.ClassifyNameOne)
-	secondClassifyName := strings.TrimSpace(index.ClassifyNameTwo)
-	thirdClassifyName := strings.TrimSpace(index.ClassifyNameThree)
+	firstClassifyName := getClassifyName(index.ClassifyNameOne)
+	secondClassifyName := getClassifyName(index.ClassifyNameTwo)
+	thirdClassifyName := getClassifyName(index.ClassifyNameThree)
 
 	var oneLevel, twoLevel, threeLevel int64
 	oneLevel = 1
@@ -345,6 +353,10 @@ func handleClassify(index IndexInfo) (firstClassifyId, secondClassifyId, thirdCl
 		classifyName := secondClassifyName
 		level := twoLevel
 
+		if secondClassifyName == `` {
+			return
+		}
+
 		// 获取层级下的父级分类map
 		currParentClassifyMap, ok := CurrLevelParentClassifyMap[level]
 		if !ok {
@@ -402,6 +414,10 @@ func handleClassify(index IndexInfo) (firstClassifyId, secondClassifyId, thirdCl
 		classifyName := thirdClassifyName
 		level := threeLevel
 
+		if thirdClassifyName == `` {
+			return
+		}
+
 		// 获取层级下的父级分类map
 		currParentClassifyMap, ok := CurrLevelParentClassifyMap[level]
 		if !ok {
@@ -457,6 +473,23 @@ func handleClassify(index IndexInfo) (firstClassifyId, secondClassifyId, thirdCl
 
 }
 
+func getClassifyName(classifyName string) string {
+	classifyName = strings.TrimSpace(classifyName)
+	if classifyName == `` {
+		return classifyName
+	}
+
+	// 如果不是未分类,那么就是处理掉带有序号的、
+	if classifyName != `未分类` {
+		classifyNameList := strings.Split(classifyName, `、`)
+		if len(classifyNameList) > 0 {
+			classifyName = classifyNameList[len(classifyNameList)-1]
+		}
+	}
+
+	return classifyName
+}
+
 // handleEdbInfo
 // @Description: 处理指标
 // @param index

+ 0 - 2
services/task.go

@@ -5,7 +5,6 @@ import (
 	"eta_gn/eta_task/services/data"
 	"eta_gn/eta_task/services/data/future_good"
 	"eta_gn/eta_task/services/data_stat"
-	"eta_gn/eta_task/services/eta_bridge"
 	"eta_gn/eta_task/utils"
 	"fmt"
 	"sync"
@@ -16,7 +15,6 @@ import (
 
 func Task() {
 	fmt.Println("task start")
-	fmt.Println(eta_bridge.SyncGnIndex(nil))
 	//如果是生产环境,才需要走这些任务
 	if utils.RunMode == "release" {
 		releaseTask()

+ 6 - 0
services/task_gn.go

@@ -3,11 +3,17 @@ package services
 import (
 	"eta_gn/eta_task/services/eta_bridge"
 	"eta_gn/eta_task/utils"
+	"fmt"
 	"github.com/beego/beego/v2/task"
 )
 
 func GnTask() {
+
+	// 初始化一次
+	fmt.Println(eta_bridge.SyncGnIndex(nil))
+
 	// 指标相关
+
 	// 每小时同步一次指标列表
 	if utils.SyncIndexPath != `` {
 		syncIndexTime := utils.SyncIndexTime