|
@@ -298,10 +298,10 @@ func EdbInfoRefreshAllFromBaseV3Bak(edbInfoIdList []int, refreshAll, isSync bool
|
|
|
// @datetime2023-10-23 09:57:55
|
|
|
// @param edbInfoIdList []int
|
|
|
// @param refreshAll bool
|
|
|
-// @param isSync bool
|
|
|
+// @param isSync bool 是否同步执行
|
|
|
// @return err error
|
|
|
-// @return isAsync bool
|
|
|
-func EdbInfoRefreshAllFromBaseV3(edbInfoIdList []int, refreshAll bool, isSync bool) (err error, isAsync bool) {
|
|
|
+// @return isAsync bool 是否异步刷新
|
|
|
+func EdbInfoRefreshAllFromBaseV3(edbInfoIdList []int, refreshAll, isSync bool) (err error, isAsync bool) {
|
|
|
var errmsg string
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
@@ -309,6 +309,35 @@ func EdbInfoRefreshAllFromBaseV3(edbInfoIdList []int, refreshAll bool, isSync bo
|
|
|
go alarm_msg.SendAlarmMsg("EdbInfoRefreshAllFromBaseV3,Err"+err.Error()+";errMsg:"+errmsg, 3)
|
|
|
}
|
|
|
}()
|
|
|
+
|
|
|
+ // 获取需要刷新的指标列表
|
|
|
+ newBaseEdbInfoArr, newBasePredictEdbInfoArr, newCalculateMap, newPredictCalculateMap, calculateArr, predictCalculateArr := getEdbInfoIdList(edbInfoIdList)
|
|
|
+
|
|
|
+ // 需要刷新的指标数量
|
|
|
+ totalEdbInfo := len(newBaseEdbInfoArr) + len(calculateArr) + len(predictCalculateArr)
|
|
|
+
|
|
|
+ if totalEdbInfo <= 20 || isSync {
|
|
|
+ err = edbInfoRefreshAll(refreshAll, newBaseEdbInfoArr, newBasePredictEdbInfoArr, newCalculateMap, newPredictCalculateMap, calculateArr, predictCalculateArr)
|
|
|
+ } else {
|
|
|
+ isAsync = true
|
|
|
+ go edbInfoRefreshAll(refreshAll, newBaseEdbInfoArr, newBasePredictEdbInfoArr, newCalculateMap, newPredictCalculateMap, calculateArr, predictCalculateArr)
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// getEdbInfoIdList
|
|
|
+// @Description: 获取待更新的指标列表
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2023-12-01 16:19:42
|
|
|
+// @param edbInfoIdList []int
|
|
|
+// @return newBaseEdbInfoArr []*data_manage.EdbInfo
|
|
|
+// @return newBasePredictEdbInfoArr []*data_manage.EdbInfo
|
|
|
+// @return newCalculateMap map[int]*data_manage.EdbInfo
|
|
|
+// @return newPredictCalculateMap map[int]*data_manage.EdbInfo
|
|
|
+// @return calculateArr []int
|
|
|
+// @return predictCalculateArr []int
|
|
|
+func getEdbInfoIdList(edbInfoIdList []int) (newBaseEdbInfoArr, newBasePredictEdbInfoArr []*data_manage.EdbInfo, newCalculateMap, newPredictCalculateMap map[int]*data_manage.EdbInfo, calculateArr, predictCalculateArr []int) {
|
|
|
traceEdbInfoList, err := TraceEdbInfoByEdbInfoIdList(edbInfoIdList)
|
|
|
if err != nil {
|
|
|
return
|
|
@@ -317,16 +346,16 @@ func EdbInfoRefreshAllFromBaseV3(edbInfoIdList []int, refreshAll bool, isSync bo
|
|
|
existEdbInfoIdMap := make(map[int]int)
|
|
|
|
|
|
// 基础指标
|
|
|
- newBaseEdbInfoArr := make([]*data_manage.EdbInfo, 0)
|
|
|
- newBasePredictEdbInfoArr := make([]*data_manage.EdbInfo, 0)
|
|
|
+ newBaseEdbInfoArr = make([]*data_manage.EdbInfo, 0)
|
|
|
+ newBasePredictEdbInfoArr = make([]*data_manage.EdbInfo, 0)
|
|
|
newBaseMap := make(map[int]*data_manage.EdbInfo)
|
|
|
newPredictBaseMap := make(map[int]*data_manage.EdbInfo)
|
|
|
|
|
|
// 计算指标
|
|
|
- newCalculateMap := make(map[int]*data_manage.EdbInfo)
|
|
|
- newPredictCalculateMap := make(map[int]*data_manage.EdbInfo)
|
|
|
- calculateArr := make([]int, 0)
|
|
|
- predictCalculateArr := make([]int, 0)
|
|
|
+ newCalculateMap = make(map[int]*data_manage.EdbInfo)
|
|
|
+ newPredictCalculateMap = make(map[int]*data_manage.EdbInfo)
|
|
|
+ calculateArr = make([]int, 0)
|
|
|
+ predictCalculateArr = make([]int, 0)
|
|
|
|
|
|
// 获取关联指标
|
|
|
for _, traceEdbInfo := range traceEdbInfoList {
|
|
@@ -370,16 +399,6 @@ func EdbInfoRefreshAllFromBaseV3(edbInfoIdList []int, refreshAll bool, isSync bo
|
|
|
// 预测计算指标的id
|
|
|
sort.Ints(predictCalculateArr)
|
|
|
|
|
|
- // 需要刷新的指标数量
|
|
|
- totalEdbInfo := len(newBaseEdbInfoArr) + len(calculateArr) + len(predictCalculateArr)
|
|
|
-
|
|
|
- if totalEdbInfo <= 20 || isSync {
|
|
|
- err = edbInfoRefreshAll(refreshAll, newBaseEdbInfoArr, newBasePredictEdbInfoArr, newCalculateMap, newPredictCalculateMap, calculateArr, predictCalculateArr)
|
|
|
- } else {
|
|
|
- isAsync = true
|
|
|
- go edbInfoRefreshAll(refreshAll, newBaseEdbInfoArr, newBasePredictEdbInfoArr, newCalculateMap, newPredictCalculateMap, calculateArr, predictCalculateArr)
|
|
|
- }
|
|
|
-
|
|
|
return
|
|
|
}
|
|
|
|