|
@@ -1445,7 +1445,7 @@ func ChartInfoRefreshV2(chartInfoId int) (err error, isAsync bool) {
|
|
|
// @author Roc
|
|
|
// @datetime 2022-09-16 10:15:38
|
|
|
// @description 将原来自己写的一套获取所有关联指标,然后刷新指标逻辑 改成 只获取使用的指标id,然后遍历去调用“指标刷新服务”
|
|
|
-func BatchChartInfoRefreshV2(chartInfoList []*data_manage.ChartInfo) (err error, isAsync bool) {
|
|
|
+func BatchChartInfoRefreshV2(chartInfoList []*data_manage.ChartInfo, redisKey string) (err error, isAsync bool) {
|
|
|
if len(chartInfoList) <= 0 {
|
|
|
return
|
|
|
}
|
|
@@ -1454,15 +1454,35 @@ func BatchChartInfoRefreshV2(chartInfoList []*data_manage.ChartInfo) (err error,
|
|
|
chartInfoIdSlice = append(chartInfoIdSlice, chartInfo.ChartInfoId)
|
|
|
}
|
|
|
|
|
|
- var errmsg string
|
|
|
+ var errMsg string
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
|
- go alarm_msg.SendAlarmMsg("ChartInfoRefresh:"+errmsg, 3)
|
|
|
+ go alarm_msg.SendAlarmMsg("ChartInfoRefresh:"+errMsg, 3)
|
|
|
//go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "ChartInfoRefresh:"+errmsg, utils.EmailSendToUsers)
|
|
|
- fmt.Println("ChartInfoRefresh Err:" + errmsg)
|
|
|
+ fmt.Println("ChartInfoRefresh Err:" + errMsg)
|
|
|
+ }
|
|
|
+
|
|
|
+ //清除图表缓存
|
|
|
+ for _, v := range chartInfoList {
|
|
|
+ key := utils.HZ_CHART_LIB_DETAIL + v.UniqueCode
|
|
|
+ _ = utils.Rc.Delete(key)
|
|
|
}
|
|
|
}()
|
|
|
|
|
|
+ // 是否要求同步刷新指标
|
|
|
+ isSync := false
|
|
|
+
|
|
|
+ // 如果是有插入redisKey,那么需要写入redis和清除redis
|
|
|
+ if redisKey != `` {
|
|
|
+ isSync = true
|
|
|
+ //设置最多10分钟缓存
|
|
|
+ utils.Rc.SetNX(redisKey, 1, time.Minute*10)
|
|
|
+ // 刷新结束后就清除缓存
|
|
|
+ defer func() {
|
|
|
+ utils.Rc.Delete(redisKey)
|
|
|
+ }()
|
|
|
+ }
|
|
|
+
|
|
|
edbIdList := make([]int, 0)
|
|
|
edbInfoIdMap := make(map[int]int)
|
|
|
edbMappingList, err := data_manage.GetChartEdbMappingListByIdList(chartInfoIdSlice)
|
|
@@ -1474,7 +1494,7 @@ func BatchChartInfoRefreshV2(chartInfoList []*data_manage.ChartInfo) (err error,
|
|
|
}
|
|
|
|
|
|
// 批量刷新
|
|
|
- err, isAsync = EdbInfoRefreshAllFromBaseV3(edbIdList, false, false)
|
|
|
+ err, isAsync = EdbInfoRefreshAllFromBaseV3(edbIdList, false, isSync)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -1482,6 +1502,22 @@ func BatchChartInfoRefreshV2(chartInfoList []*data_manage.ChartInfo) (err error,
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// GetBatchChartRefreshKey
|
|
|
+// @Description: 获取批量刷新key
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2023-11-30 13:30:26
|
|
|
+// @param source string
|
|
|
+// @param reportId int
|
|
|
+// @param reportChapterId int
|
|
|
+// @return string
|
|
|
+func GetBatchChartRefreshKey(source string, reportId, reportChapterId int) string {
|
|
|
+ if source == `` {
|
|
|
+ return ``
|
|
|
+ }
|
|
|
+
|
|
|
+ return fmt.Sprint("batch_chart_refresh:", source, ":", reportId, ":", reportChapterId)
|
|
|
+}
|
|
|
+
|
|
|
func CheckIsEnChart(chartNameEn string, edbList []*data_manage.ChartEdbInfoMapping, source, chartType int) bool {
|
|
|
// 相关性图表不判断指标
|
|
|
if utils.InArrayByInt([]int{utils.CHART_SOURCE_CORRELATION, utils.CHART_SOURCE_ROLLING_CORRELATION, utils.CHART_SOURCE_LINE_EQUATION}, source) && chartNameEn != "" {
|