浏览代码

新增定时任务

longyu 2 年之前
父节点
当前提交
7e7951bce2
共有 6 个文件被更改,包括 152 次插入8 次删除
  1. 25 1
      init_serve/task.go
  2. 0 1
      main.go
  3. 14 2
      models/index/index.go
  4. 21 0
      services/api_tool.go
  5. 72 4
      services/index.go
  6. 20 0
      utils/common.go

+ 25 - 1
init_serve/task.go

@@ -1,6 +1,7 @@
 package init_serve
 
 import (
+	"fmt"
 	"github.com/robfig/cron/v3"
 	"hongze/mysteel_watch/services"
 	"hongze/mysteel_watch/utils"
@@ -13,7 +14,24 @@ import (
 
 func InitTask() {
 	c := cron.New(cron.WithSeconds())
-	_, err := c.AddFunc("0 */3 * * * *", CheckIndexCreate)
+
+	//每5分钟检测一次,指标生成
+	_, err := c.AddFunc("0 */5 * * * *", CheckIndexCreate)
+	if err != nil {
+		global.LOG.Info("DownloadCvTask err" + err.Error())
+		panic("DownloadCvTask err" + err.Error())
+	}
+
+	//检测周度指标刷新
+
+
+	_, err = c.AddFunc("0 00 03 * * *", services.IndexRefreshAll)
+	if err != nil {
+		global.LOG.Info("DownloadCvTask err" + err.Error())
+		panic("DownloadCvTask err" + err.Error())
+	}
+
+	_, err = c.AddFunc("0 50 12 * * *", services.IndexRefreshAll)
 	if err != nil {
 		global.LOG.Info("DownloadCvTask err" + err.Error())
 		panic("DownloadCvTask err" + err.Error())
@@ -35,3 +53,9 @@ func CheckIndexCreate() {
 	}()
 	err = services.IndexCreateCheck()
 }
+
+//定时刷新
+func RefreshTask() {
+	fmt.Println(time.Now().Format(utils.FormatDateTime))
+
+}

+ 0 - 1
main.go

@@ -12,7 +12,6 @@ import (
 
 // @BasePath /
 func main() {
-	fmt.Println("main")
 	core.RunServe()
 }
 

+ 14 - 2
models/index/index.go

@@ -18,6 +18,8 @@ type BaseFromMysteelChemicalIndex struct {
 	EndDate                        string `gorm:"column:end_date" json:"end_date"`
 	Describe                       string `gorm:"column:describe" json:"describe"`
 	UpdateWeek                     string `gorm:"column:update_week" json:"update_week"`
+	UpdateTime                     string `gorm:"column:update_time" json:"update_time"`
+	UpdateTime2                    string `gorm:"column:update_time2" json:"update_time2"`
 	SysUserId                      int    `gorm:"column:sys_user_id" json:"sys_user_id"`
 	SysUserRealName                string `gorm:"column:sys_user_real_name" json:"sys_user_real_name"`
 	FilePath                       string `gorm:"column:file_path" json:"file_path"`
@@ -74,8 +76,18 @@ type IndexDeleteReq struct {
 	IndexCode string `json:"IndexCode" binding:"required"` //指标编码
 }
 
-func (d *BaseFromMysteelChemicalIndex)GetIndexCreate()(item []*BaseFromMysteelChemicalIndex, err error)  {
+func (d *BaseFromMysteelChemicalIndex) GetIndexCreate() (item []*BaseFromMysteelChemicalIndex, err error) {
 	err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).
 		Where("index_name = '' ").Find(&item).Error
 	return
-}
+}
+
+func (d *BaseFromMysteelChemicalIndex) GetIndexRefreshAll() (item []*BaseFromMysteelChemicalIndex, err error) {
+	err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).Find(&item).Error
+	return
+}
+
+func (d *BaseFromMysteelChemicalIndex) GetIndexRefreshWeek(nowWeekZn string) (item []*BaseFromMysteelChemicalIndex, err error) {
+	err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).Where(" update_week = ? ", nowWeekZn).Find(&item).Error
+	return
+}

+ 21 - 0
services/api_tool.go

@@ -0,0 +1,21 @@
+package services
+
+import (
+	"fmt"
+	"github.com/rdlucklib/rdluck_tools/http"
+)
+
+const (
+	RefreshUrl = "http://127.0.0.1:7005/mysteel_chemical/refresh"
+)
+
+func MysteelChemicalRefresh(filePath string) {
+	var refreshUrl string
+	refreshUrl = RefreshUrl + "?FilePath=" + filePath
+	body, err := http.Get(refreshUrl)
+	if err != nil {
+		fmt.Println("MysteelChemicalRefresh Err:" + err.Error())
+		return
+	}
+	fmt.Println("MysteelChemicalRefresh Result:" + string(body))
+}

+ 72 - 4
services/index.go

@@ -9,6 +9,7 @@ import (
 	"hongze/mysteel_watch/services/alarm_msg"
 	"hongze/mysteel_watch/utils"
 	"os"
+	"strconv"
 	"strings"
 	"time"
 )
@@ -32,10 +33,11 @@ func IndexCreateCheck() (err error) {
 	fmt.Println("indexCodeStr:" + indexCodeStr)
 	go alarm_msg.SendAlarmMsg(utils.APPNAME+" 存在指标数据未生成:"+indexCodeStr, 3)
 	for _, v := range list {
-		err := IndexCreate(v)
-		if err != nil {
-			go alarm_msg.SendAlarmMsg(utils.APPNAME+" 指标数据未生成检测失败:"+err.Error(), 3)
-		}
+		//err := IndexCreate(v)
+		//if err != nil {
+		//	go alarm_msg.SendAlarmMsg(utils.APPNAME+" 指标数据未生成检测失败:"+err.Error(), 3)
+		//}
+		MysteelChemicalRefresh(v.FilePath)
 	}
 	return nil
 }
@@ -91,3 +93,69 @@ func IndexCreate(item *index.BaseFromMysteelChemicalIndex) (err error) {
 	time.Sleep(1 * time.Minute)
 	return
 }
+
+func IndexRefreshAll() {
+	fmt.Println("IndexCreateCheck")
+	indexObj := new(index.BaseFromMysteelChemicalIndex)
+	list, err := indexObj.GetIndexRefreshAll()
+	if err != nil {
+		fmt.Println("GetIndexRefreshAll Err:" + err.Error())
+		return
+	}
+	fmt.Println("listLen:", len(list))
+	if len(list) <= 0 {
+		return
+	}
+	nowDate := time.Now().Format(utils.FormatDate)
+	monthLastDay := utils.GetNowMonthLastDay()
+	monthLastDayStr := monthLastDay.Format(utils.FormatDate)
+	nowWeek := time.Now().Weekday().String()
+	nowWeekZn := utils.GetWeekZn(nowWeek)
+	yearLast := strconv.Itoa(time.Now().Year()) + "12-31"
+	for _, v := range list {
+		if v.Frequency == "周度" && v.UpdateWeek == nowWeekZn && v.UpdateTime == "" && v.UpdateTime2 == "" {
+			MysteelChemicalRefresh(v.FilePath)
+		} else if (v.Frequency == "月度" || v.Frequency == "旬度") && nowDate == monthLastDayStr {
+			MysteelChemicalRefresh(v.FilePath)
+		} else if v.Frequency == "年度" && nowDate == yearLast {
+			MysteelChemicalRefresh(v.FilePath)
+		} else {
+			MysteelChemicalRefresh(v.FilePath)
+		}
+	}
+	return
+}
+
+
+func IndexRefreshWeek() {
+	nowWeek := time.Now().Weekday().String()
+	nowWeekZn := utils.GetWeekZn(nowWeek)
+
+	indexObj := new(index.BaseFromMysteelChemicalIndex)
+	list, err := indexObj.GetIndexRefreshWeek(nowWeek)
+	if err != nil {
+		fmt.Println("GetIndexRefreshWeek Err:" + err.Error())
+		return
+	}
+	fmt.Println("listLen:", len(list))
+	if len(list) <= 0 {
+		return
+	}
+	nowDate := time.Now().Format(utils.FormatDate)
+	monthLastDay := utils.GetNowMonthLastDay()
+	monthLastDayStr := monthLastDay.Format(utils.FormatDate)
+
+	yearLast := strconv.Itoa(time.Now().Year()) + "12-31"
+	for _, v := range list {
+		if v.Frequency == "周度" && v.UpdateWeek == nowWeekZn && v.UpdateTime == "" && v.UpdateTime2 == "" {
+			MysteelChemicalRefresh(v.FilePath)
+		} else if (v.Frequency == "月度" || v.Frequency == "旬度") && nowDate == monthLastDayStr {
+			MysteelChemicalRefresh(v.FilePath)
+		} else if v.Frequency == "年度" && nowDate == yearLast {
+			MysteelChemicalRefresh(v.FilePath)
+		} else {
+			MysteelChemicalRefresh(v.FilePath)
+		}
+	}
+	return
+}

+ 20 - 0
utils/common.go

@@ -1027,3 +1027,23 @@ func GetUpdateWeekEn(updateWeek string) string {
 	}
 	return updateWeek
 }
+
+func GetWeekZn(updateWeek string) (week string) {
+	switch updateWeek {
+	case "Monday":
+		week = "周一"
+	case "Tuesday":
+		week = "周二"
+	case "Wednesday":
+		week = "周三"
+	case "Thursday":
+		week = "周四"
+	case "Friday":
+		week = "周五"
+	case "Saturday":
+		week = "周六"
+	case "Sunday":
+		week = "周日"
+	}
+	return week
+}