|
@@ -1388,7 +1388,7 @@ func ChartInfoRefreshV2(chartInfoId int) (err error) {
|
|
|
// @author Roc
|
|
|
// @datetime 2022-09-16 10:15:38
|
|
|
// @description 将原来自己写的一套获取所有关联指标,然后刷新指标逻辑 改成 只获取使用的指标id,然后遍历去调用“指标刷新服务”
|
|
|
-func BatchChartInfoRefreshV2(chartInfoList []*data_manage.ChartInfo) (err error) {
|
|
|
+func BatchChartInfoRefreshV2(chartInfoList []*data_manage.ChartInfo, redisKey string) (err error, isAsync bool) {
|
|
|
if len(chartInfoList) <= 0 {
|
|
|
return
|
|
|
}
|
|
@@ -1404,8 +1404,28 @@ func BatchChartInfoRefreshV2(chartInfoList []*data_manage.ChartInfo) (err error)
|
|
|
//go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "ChartInfoRefresh:"+errmsg, utils.EmailSendToUsers)
|
|
|
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)
|
|
@@ -1417,9 +1437,47 @@ func BatchChartInfoRefreshV2(chartInfoList []*data_manage.ChartInfo) (err error)
|
|
|
}
|
|
|
|
|
|
// 批量刷新
|
|
|
- err, _ = EdbInfoRefreshAllFromBaseV3(edbIdList, false, true)
|
|
|
+ err, _ = EdbInfoRefreshAllFromBaseV3(edbIdList, false, isSync)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
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)
|
|
|
+}
|
|
|
+
|
|
|
+// CheckBatchChartRefreshResult
|
|
|
+// @Description: 判断报告中的图表是否刷新完成
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2023-11-30 13:30:26
|
|
|
+// @param source string
|
|
|
+// @param reportId int
|
|
|
+// @param reportChapterId int
|
|
|
+// @return string
|
|
|
+func CheckBatchChartRefreshResult(source string, reportId, reportChapterId int) (refreshResult bool) {
|
|
|
+ refreshResult = true
|
|
|
+ redisKey := GetBatchChartRefreshKey(source, reportId, reportChapterId)
|
|
|
+ if redisKey != `` {
|
|
|
+ // 如果找到了key,那么就是还在更新中
|
|
|
+ isOk := utils.Rc.IsExist(redisKey)
|
|
|
+ if isOk {
|
|
|
+ refreshResult = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|