Ver Fonte

新增及时刷新检测服务

longyu há 2 anos atrás
pai
commit
33c26bf083
4 ficheiros alterados com 70 adições e 5 exclusões
  1. 5 4
      init_serve/task.go
  2. 7 0
      models/index/index.go
  3. 50 0
      services/index.go
  4. 8 1
      watch/watch.go

+ 5 - 4
init_serve/task.go

@@ -20,7 +20,6 @@ func InitTask() {
 	_, err := c.AddFunc("0 */1 * * * *", CheckIndexCreate)
 	if err != nil {
 		global.LOG.Info("DownloadCvTask err" + err.Error())
-		panic("DownloadCvTask err" + err.Error())
 	}
 
 	////每30分钟检测一次,周度指标刷新
@@ -33,22 +32,24 @@ func InitTask() {
 	_, err = c.AddFunc("0 00 17 * * *", services.IndexRefreshAll)
 	if err != nil {
 		global.LOG.Info("DownloadCvTask err" + err.Error())
-		panic("DownloadCvTask err" + err.Error())
 	}
 
 	//单独刷新甲醇指标
 	_, err = c.AddFunc("0 00 18 * * *", services.IndexRefreshMethanol)
 	if err != nil {
 		global.LOG.Info("DownloadCvTask err" + err.Error())
-		panic("DownloadCvTask err" + err.Error())
 	}
 
 	_, err = c.AddFunc("0 */10 * * * *", services.Merge)
 	if err != nil {
 		global.LOG.Info("DownloadCvTask err" + err.Error())
-		panic("DownloadCvTask err" + err.Error())
 	}
 
+	//检测需要及时刷新的指标
+	_, err = c.AddFunc("0 30 17 * * *", services.IndexRefreshTimely)
+	if err != nil {
+		global.LOG.Info("DownloadCvTask err" + err.Error())
+	}
 	//
 	////其他指标刷新
 	//_, err = c.AddFunc("0 30 12 * * *", services.IndexRefreshAll)

+ 7 - 0
models/index/index.go

@@ -191,3 +191,10 @@ func (d *BaseFromMysteelChemicalIndex) GetIndexRefreshMethanolByMergeFile() (ite
 		Group("merge_file_path").Find(&item).Error
 	return
 }
+
+// GetIndexRefreshAllByMergeFile 根据合并文件去分组查询需要刷新的文件
+func (d *BaseFromMysteelChemicalIndex) GetIndexRefreshMethanolByTimely() (item []*BaseFromMysteelChemicalIndex, err error) {
+	err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).Where("merge_file_path != ? AND is_refresh=1 ", "").
+		Group("merge_file_path").Find(&item).Error
+	return
+}

+ 50 - 0
services/index.go

@@ -262,6 +262,56 @@ func IndexRefreshMethanol() {
 	return
 }
 
+
+
+func IndexRefreshTimely() {
+	fmt.Println("IndexRefreshTimely")
+	go alarm_msg.SendAlarmMsg(utils.APPNAME+" 及时刷新指标", 3)
+
+	indexObj := new(index.BaseFromMysteelChemicalIndex)
+	list, err := indexObj.GetIndexRefreshMethanolByTimely()
+	if err != nil {
+		fmt.Println("GetIndexRefreshAll Err:" + err.Error())
+		return
+	}
+	fmt.Println("listLen:", len(list))
+	if len(list) <= 0 {
+		return
+	}
+	now := time.Now()
+	month := int(now.Month())
+	day := now.Day()
+	week := int(now.Weekday())
+	for _, v := range list {
+		rn := utils.GetRandInt(1, 10)
+		time.Sleep(time.Duration(rn) * time.Second)
+		time.Sleep(3 * time.Second)
+		if v.Frequency == "年度" {
+			if month == 1 && day == 1 {
+				MysteelChemicalRefresh(v.MergeFilePath)
+			}
+		} else if v.Frequency == "季度" {
+			if (month == 1 || month == 4 || month == 7 || month == 10) && day == 1 {
+				MysteelChemicalRefresh(v.MergeFilePath)
+			}
+		} else if v.Frequency == "月度" {
+			if day == 1 {
+				MysteelChemicalRefresh(v.MergeFilePath)
+			}
+		} else if v.Frequency == "周度" {
+			if week > 2 && week < 6 {
+				MysteelChemicalRefresh(v.MergeFilePath)
+			}
+		} else {
+			if week < 6 {
+				MysteelChemicalRefresh(v.MergeFilePath)
+			}
+		}
+	}
+	return
+}
+
+
 var lock sync.RWMutex
 
 //刷新周度指标数据

+ 8 - 1
watch/watch.go

@@ -247,6 +247,7 @@ func WatchIndexFile(filePath string) {
 								newFilePath = filePath
 							}
 
+							fmt.Println("isAdd:", isAdd)
 							if isAdd == 1 {
 								indexObj.IndexCode = indexCode
 								indexObj.IndexName = indexName
@@ -306,7 +307,10 @@ func WatchIndexFile(filePath string) {
 								updateColsArr = append(updateColsArr, "update_date")
 								updateColsArr = append(updateColsArr, "merge_update_week")
 
-								indexObj.Update(runMode, updateColsArr)
+								err = indexObj.Update(runMode, updateColsArr)
+								if err != nil {
+									fmt.Println("indexObj.Update err:" + err.Error())
+								}
 
 								dataObj := new(index.BaseFromMysteelChemicalData)
 								//获取已存在的所有数据
@@ -354,11 +358,14 @@ func WatchIndexFile(filePath string) {
 			}
 
 			if len(dataList) > 0 {
+				fmt.Println("dataObj.Add")
 				dataObj := new(index.BaseFromMysteelChemicalData)
 				err = dataObj.Add(runMode, dataList)
 				if err != nil {
 					fmt.Println("dataObj.Add() Err:" + err.Error())
 				}
+			} else {
+				fmt.Println("dataObj.Add:", len(dataList))
 			}
 		}
 		wg.Done()