|
@@ -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
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|