Browse Source

test ths lt

hsun 9 months ago
parent
commit
cb71599e50
3 changed files with 116 additions and 40 deletions
  1. 6 3
      services/data/edb_info.go
  2. 92 37
      services/edb_refresh.go
  3. 18 0
      services/task.go

+ 6 - 3
services/data/edb_info.go

@@ -782,9 +782,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
@@ -800,7 +803,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
+			}
 		}
 	}
 

+ 18 - 0
services/task.go

@@ -49,6 +49,10 @@ func releaseTask() {
 	refreshData := task.NewTask("refreshData", "0 30 0,19 * * *", RefreshData)
 	task.AddTask("refreshData", refreshData)
 
+	// TODO:14:00路透刷新测试
+	refreshLtTest := task.NewTask("refreshLtTest", "0 0 14 * * *", RefreshLtTest)
+	task.AddTask("refreshLtTest", refreshLtTest)
+
 	// 根据配置刷新指标数据
 	configRefreshData := task.NewTask("syncBaseDataExt", "0 */30 * * * * ", ConfigRefreshData)
 	task.AddTask("configRefreshData", configRefreshData)
@@ -281,3 +285,17 @@ func TaskInit() {
 	fmt.Println("TaskInit end")
 	return
 }
+
+func RefreshLtTest(cont context.Context) (err error) {
+	fmt.Println("RefreshLtTest End")
+	wg := sync.WaitGroup{}
+	wg.Add(1)
+
+	// 路透
+	go data.RefreshDataFromLt(&wg)
+
+	wg.Wait()
+
+	fmt.Println("RefreshLtTest End")
+	return
+}