Browse Source

pcsg定时任务调整为配置

hsun 8 months ago
parent
commit
d55f45df89
3 changed files with 81 additions and 10 deletions
  1. 50 9
      services/data/base_from_pcsg.go
  2. 1 1
      services/task.go
  3. 30 0
      static/pcsg_task.json

+ 50 - 9
services/data/base_from_pcsg.go

@@ -2,30 +2,71 @@ package data
 
 import (
 	"context"
-	"eta/eta_task/services/alarm_msg"
+	"encoding/json"
 	"eta/eta_task/utils"
 	"fmt"
+	"io/ioutil"
+	"time"
 )
 
-// RefreshPCSGBloomberg 中石油新加坡-每日指标刷新
+// RefreshPCSGBloomberg 中石油新加坡-定时刷新指标
 func RefreshPCSGBloomberg(cont context.Context) (err error) {
 	defer func() {
 		if err != nil {
-			tips := "RefreshPCSGBloombergDaily-中石油新加坡-刷新彭博日度指标失败, ErrMsg:\n" + err.Error()
+			tips := "RefreshPCSGBloombergDaily-中石油新加坡-刷新彭博指标失败, ErrMsg:\n" + err.Error()
 			utils.FileLog.Info(tips)
-			go alarm_msg.SendAlarmMsg(tips, 3)
 		}
 	}()
 
-	param := make(map[string]interface{})
+	runTime := time.Now().Local().Format("15:04")
+	tasks, e := LoadPCSGBloombergTask()
+	if e != nil {
+		err = fmt.Errorf("读取配置失败, %v", e)
+		return
+	}
+	if len(tasks) == 0 {
+		utils.FileLog.Info("任务未配置")
+		return
+	}
+
+	// 根据分钟匹配任务
 	uri := "bloomberg/pcsg/refresh_task"
-	res, e := postRefreshEdbData(param, uri)
+	for _, v := range tasks {
+		if runTime != v.TaskTime {
+			continue
+		}
+		utils.FileLog.Info(fmt.Sprintf("执行%s", v.TaskKey))
+		param := make(map[string]interface{})
+		param["TaskKey"] = v.TaskKey
+		res, e := postRefreshEdbData(param, uri)
+		if e != nil {
+			utils.FileLog.Info(fmt.Sprintf("postRefreshEdbData, %v", e))
+			continue
+		}
+		if res != nil && res.Ret != 200 {
+			utils.FileLog.Info("postRefreshEdbData, fail")
+			continue
+		}
+		utils.FileLog.Info(fmt.Sprintf("执行结束%s", v.TaskKey))
+	}
+	return
+}
+
+type PCSGBloombergTask struct {
+	TaskKey  string `json:"TaskKey"`
+	TaskTime string `json:"TaskTime"`
+}
+
+// LoadPCSGBloombergTask 加载配置
+func LoadPCSGBloombergTask() (tasks []*PCSGBloombergTask, err error) {
+	filePath := "./static/pcsg_task.json"
+	b, e := ioutil.ReadFile(filePath)
 	if e != nil {
-		err = fmt.Errorf("postRefreshEdbData err: %s", e.Error())
+		err = fmt.Errorf("读取配置失败, err: %v", e)
 		return
 	}
-	if res != nil && res.Ret != 200 {
-		err = fmt.Errorf("postRefreshEdbData fail")
+	if e = json.Unmarshal(b, &tasks); e != nil {
+		err = fmt.Errorf("解析配置失败, err: %v", e)
 		return
 	}
 	return

+ 1 - 1
services/task.go

@@ -119,7 +119,7 @@ func releaseTask() {
 
 	// 中石油新加坡
 	if utils.IsPCSG == "1" {
-		refreshPCSGBloomberg := task.NewTask("refreshPCSGBloombergDaily", "0 30 9 * * *", data.RefreshPCSGBloomberg)
+		refreshPCSGBloomberg := task.NewTask("refreshPCSGBloombergDaily", "0 */30 * * * *", data.RefreshPCSGBloomberg)
 		task.AddTask("中石油新加坡-每日Bloomberg指标刷新", refreshPCSGBloomberg)
 	}
 }

+ 30 - 0
static/pcsg_task.json

@@ -0,0 +1,30 @@
+[
+  {
+    "TaskKey": "IDpcsgDailyRunHistU2",
+    "TaskTime": "07:00"
+  },
+  {
+    "TaskKey": "IDpcsgDailyRunHist4",
+    "TaskTime": "07:00"
+  },
+  {
+    "TaskKey": "IDpcsgDailyRunHist1",
+    "TaskTime": "08:00"
+  },
+  {
+    "TaskKey": "IDpcsgDailyRunHist2",
+    "TaskTime": "08:00"
+  },
+  {
+    "TaskKey": "IDpcsgDailyRunHistV1",
+    "TaskTime": "08:00"
+  },
+  {
+    "TaskKey": "IDpcsgDailyRun4",
+    "TaskTime": "08:00"
+  },
+  {
+    "TaskKey": "IDpcsgMonthRun2",
+    "TaskTime": "09:30"
+  }
+]