Browse Source

Merge remote-tracking branch 'origin/master' into custom_v2/240520

Roc 10 tháng trước cách đây
mục cha
commit
850974f491
5 tập tin đã thay đổi với 105 bổ sung46 xóa
  1. 6 3
      services/data/edb_info.go
  2. 92 37
      services/edb_refresh.go
  3. 4 4
      services/task.go
  4. 3 1
      utils/config.go
  5. 0 1
      utils/constants.go

+ 6 - 3
services/data/edb_info.go

@@ -823,9 +823,12 @@ func RefreshDataFromLt(wg *sync.WaitGroup) (err error) {
 	errMsgList := make([]string, 0)
 	defer func() {
 		if len(errMsgList) > 0 {
-			fmt.Println("RefreshDataFromLt Err:", errMsgList)
-			go alarm_msg.SendAlarmMsg("RefreshDataFromLt ErrMsg:"+strings.Join(errMsgList, `<br/>`), 3)
+			tips := fmt.Sprintf("RefreshDataFromLt ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
+			fmt.Println(tips)
+			utils.FileLog.Info(tips)
+			go alarm_msg.SendAlarmMsg(tips, 3)
 		}
+		utils.FileLog.Info("RefreshDataFromLt刷新结束")
 		wg.Done()
 	}()
 	var condition string
@@ -841,7 +844,7 @@ func RefreshDataFromLt(wg *sync.WaitGroup) (err error) {
 	for _, v := range items {
 		fmt.Println(v.EdbCode, v.Frequency, v.EndDate)
 		startDate := v.StartDate.Format(utils.FormatDate)
-		resp, err := RefreshEdbData(v.EdbInfoId, v.SubSource, v.Source, v.EdbCode, startDate)
+		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
 		if err != nil {
 			errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
 			continue

+ 92 - 37
services/edb_refresh.go

@@ -303,48 +303,103 @@ func BaseRefreshData(wg *sync.WaitGroup, source, subSource int, items []*edb_ref
 	// 是否从最开始的日期更新
 	var isRefreshByStartDate bool
 
-	for _, v := range items {
-		// 如果暂停更新,那就过滤
-		if v.NoUpdate == 1 {
-			continue
-		}
-		if v.DataRefreshNum > 0 {
-			dataRefreshNum = v.DataRefreshNum
-		}
+	if source != utils.DATA_SOURCE_THS {
+		for _, v := range items {
+			// 如果暂停更新,那就过滤
+			if v.NoUpdate == 1 {
+				continue
+			}
+			if v.DataRefreshNum > 0 {
+				dataRefreshNum = v.DataRefreshNum
+			}
 
-		startDate := ""
-		if isRefreshByStartDate {
-			startDate = v.StartDate.Format(utils.FormatDate)
-		} else {
-			if v.Frequency == "日度" {
-				startDate = v.EndDate.AddDate(0, 0, -dataRefreshNum).Format(utils.FormatDate)
-			} else if v.Frequency == "周度" {
-				startDate = v.EndDate.AddDate(0, 0, -(dataRefreshNum * 7)).Format(utils.FormatDate)
-			} else if v.Frequency == "旬度" {
-				startDate = v.EndDate.AddDate(0, 0, -(dataRefreshNum * 10)).Format(utils.FormatDate)
-			} else if v.Frequency == "月度" {
-				startDate = v.EndDate.AddDate(0, -dataRefreshNum, 0).Format(utils.FormatDate)
-			} else if v.Frequency == "季度" {
-				startDate = v.EndDate.AddDate(0, -dataRefreshNum*3, 0).Format(utils.FormatDate)
-			} else if v.Frequency == "半年度" {
-				startDate = v.EndDate.AddDate(0, -dataRefreshNum*6, 0).Format(utils.FormatDate)
-			} else if v.Frequency == "年度" {
-				startDate = v.EndDate.AddDate(-dataRefreshNum, 0, 0).Format(utils.FormatDate)
+			startDate := ""
+			if isRefreshByStartDate {
+				startDate = v.StartDate.Format(utils.FormatDate)
 			} else {
-				startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+				if v.Frequency == "日度" {
+					startDate = v.EndDate.AddDate(0, 0, -dataRefreshNum).Format(utils.FormatDate)
+				} else if v.Frequency == "周度" {
+					startDate = v.EndDate.AddDate(0, 0, -(dataRefreshNum * 7)).Format(utils.FormatDate)
+				} else if v.Frequency == "旬度" {
+					startDate = v.EndDate.AddDate(0, 0, -(dataRefreshNum * 10)).Format(utils.FormatDate)
+				} else if v.Frequency == "月度" {
+					startDate = v.EndDate.AddDate(0, -dataRefreshNum, 0).Format(utils.FormatDate)
+				} else if v.Frequency == "季度" {
+					startDate = v.EndDate.AddDate(0, -dataRefreshNum*3, 0).Format(utils.FormatDate)
+				} else if v.Frequency == "半年度" {
+					startDate = v.EndDate.AddDate(0, -dataRefreshNum*6, 0).Format(utils.FormatDate)
+				} else if v.Frequency == "年度" {
+					startDate = v.EndDate.AddDate(-dataRefreshNum, 0, 0).Format(utils.FormatDate)
+				} else {
+					startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+				}
 			}
-		}
-		fmt.Println(startDate)
+			fmt.Println(startDate)
 
-		// 数据更新
-		resp, tmpErr := data.RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
-		if tmpErr != nil {
-			errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+tmpErr.Error())
-			continue
+			// 数据更新
+			resp, tmpErr := data.RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
+			if tmpErr != nil {
+				errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+tmpErr.Error())
+				continue
+			}
+			if resp.Ret != 200 {
+				errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
+				continue
+			}
 		}
-		if resp.Ret != 200 {
-			errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
-			continue
+	}
+
+	// 同花顺控制速率, 每秒最多4次请求(同花顺EDB函数限制为5, 考虑到可能存在用户同时在使用, 这里批量刷新设置为4, 话说5确实是有点少了吧=_=!)
+	if source == utils.DATA_SOURCE_THS {
+		ticker := time.NewTicker(250 * time.Millisecond)
+		defer ticker.Stop()
+
+		for _, v := range items {
+			<-ticker.C
+
+			// 如果暂停更新,那就过滤
+			if v.NoUpdate == 1 {
+				continue
+			}
+			if v.DataRefreshNum > 0 {
+				dataRefreshNum = v.DataRefreshNum
+			}
+
+			startDate := ""
+			if isRefreshByStartDate {
+				startDate = v.StartDate.Format(utils.FormatDate)
+			} else {
+				if v.Frequency == "日度" {
+					startDate = v.EndDate.AddDate(0, 0, -dataRefreshNum).Format(utils.FormatDate)
+				} else if v.Frequency == "周度" {
+					startDate = v.EndDate.AddDate(0, 0, -(dataRefreshNum * 7)).Format(utils.FormatDate)
+				} else if v.Frequency == "旬度" {
+					startDate = v.EndDate.AddDate(0, 0, -(dataRefreshNum * 10)).Format(utils.FormatDate)
+				} else if v.Frequency == "月度" {
+					startDate = v.EndDate.AddDate(0, -dataRefreshNum, 0).Format(utils.FormatDate)
+				} else if v.Frequency == "季度" {
+					startDate = v.EndDate.AddDate(0, -dataRefreshNum*3, 0).Format(utils.FormatDate)
+				} else if v.Frequency == "半年度" {
+					startDate = v.EndDate.AddDate(0, -dataRefreshNum*6, 0).Format(utils.FormatDate)
+				} else if v.Frequency == "年度" {
+					startDate = v.EndDate.AddDate(-dataRefreshNum, 0, 0).Format(utils.FormatDate)
+				} else {
+					startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+				}
+			}
+			fmt.Println(startDate)
+
+			// 数据更新
+			resp, tmpErr := data.RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
+			if tmpErr != nil {
+				errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+tmpErr.Error())
+				continue
+			}
+			if resp.Ret != 200 {
+				errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
+				continue
+			}
 		}
 	}
 

+ 4 - 4
services/task.go

@@ -118,14 +118,14 @@ func releaseTask() {
 	}
 
 	// 中石油新加坡
-	if utils.BusinessCode == utils.BusinessCodePCSG {
+	if utils.IsPCSG == "1" {
 		refreshPCSGBloombergDaily := task.NewTask("refreshPCSGBloombergDaily", "0 30 9 * * *", data.RefreshPCSGBloombergDaily)
 		task.AddTask("刷新中石油新加坡-Bloomberg日度指标", refreshPCSGBloombergDaily)
 
-		refreshPCSGBloombergWeekly := task.NewTask("refreshPCSGBloombergWeekly", "0 30 9 * * *", data.RefreshPCSGBloombergWeekly)
-		task.AddTask("刷新中石油新加坡-Bloomberg周度指标", refreshPCSGBloombergWeekly)
+		//refreshPCSGBloombergWeekly := task.NewTask("refreshPCSGBloombergWeekly", "0 30 9 * * *", data.RefreshPCSGBloombergWeekly)
+		//task.AddTask("刷新中石油新加坡-Bloomberg周度指标", refreshPCSGBloombergWeekly)
 
-		refreshPCSGBloombergMonthly := task.NewTask("refreshPCSGBloombergMonthly", "0 30 9 * * *", data.RefreshPCSGBloombergMonthly)
+		refreshPCSGBloombergMonthly := task.NewTask("refreshPCSGBloombergMonthly", "0 32 9 * * *", data.RefreshPCSGBloombergMonthly)
 		task.AddTask("刷新中石油新加坡-Bloomberg月度指标", refreshPCSGBloombergMonthly)
 	}
 }

+ 3 - 1
utils/config.go

@@ -117,7 +117,8 @@ var (
 
 var (
 	// 是否xy
-	IsXy string
+	IsXy   string
+	IsPCSG string
 )
 
 var (
@@ -278,6 +279,7 @@ func init() {
 	// 客户信息
 	{
 		IsXy = config["is_xy"]
+		IsPCSG = config["is_pcsg"]
 	}
 
 	// 桥接服务

+ 0 - 1
utils/constants.go

@@ -146,7 +146,6 @@ const (
 	BusinessCodeRelease = "E2023080900" // 生产环境
 	BusinessCodeJiaYue  = "E2023092201" // 嘉悦物产
 	BusinessCodeZhongJi = "E2023110300" // 中基宁波
-	BusinessCodePCSG    = "E2024022900" // 中石油新加坡
 )
 
 // 子数据来源渠道