package init_serve import ( "eta/mysteel_watch/services" "eta/mysteel_watch/utils" "eta/mysteel_watch/watch" "github.com/robfig/cron/v3" "time" "eta/mysteel_watch/global" "eta/mysteel_watch/services/alarm_msg" ) func InitTask() { // 异步处理待刷新的excel go services.AutoRefresh() // 异步处理已经变更过的excel go watch.HandleFileUpdate() c := cron.New(cron.WithSeconds()) //awk '{ if ($9 <= 200) print "<= 200ms"; else if ($9 <= 500) print "201-500ms"; else if ($9 <= 1000) print "501-1000ms"; else if ($9 <= 2000) print "1001-2000ms"; else print "> 2000ms"; }' eta_api.log | sort | uniq -c //每5分钟检测一次,指标生成 _, err := c.AddFunc("0 */5 * * * *", CheckIndexCreateMerge) if err != nil { global.LOG.Error("CheckIndexCreateMerge err" + err.Error()) } // 定时统一更新(日度、周度指标) //if len(global.CONFIG.Serve.RefreshTimeList) <= 0 { // //panic("未配置数据统一刷新时间") // // 未配置时间的话,那么默认每天17点更新一次 // global.CONFIG.Serve.RefreshTimeList = append(global.CONFIG.Serve.RefreshTimeList, "0 0 17 * * *") //} //for _, timeStr := range global.CONFIG.Serve.RefreshTimeList { // _, tmpErr := c.AddFunc(timeStr, services.MergeDayAndWeek) // if tmpErr != nil { // global.LOG.Error("services.MergeDayAndWeek 服务启动失败" + "时间:" + timeStr + ";err:" + tmpErr.Error()) // } //} // //// 每天早上7点处理一次 //_, err = c.AddFunc("0 0 7 * * *", services.MergeMonthSeasonYear) //if err != nil { // global.LOG.Error("services.MergeMonthSeasonYear err" + err.Error()) //} //每2分钟检测一次指标文件是否更新 _, err = c.AddFunc("0 */2 * * * *", watch.ReadWatchIndexFile) if err != nil { global.LOG.Error("watch.ReadWatchIndexFile err" + err.Error()) } // 服务检测 _, err = c.AddFunc("0 */1 * * * *", services.ServerCheck) if err != nil { global.LOG.Error("ServerCheck err" + err.Error()) } // 每30分钟检测一次是否需要刷新数据 _, err = c.AddFunc("0 */30 * * * *", services.CheckRefreshConfig) if err != nil { global.LOG.Error("services.CheckRefreshConfig err" + err.Error()) } // 指标更新检测 if global.CONFIG.Serve.IsCheckIndexUpdate { services.IndexUpdateCheck() _, err = c.AddFunc("0 30 17 * * *", services.IndexUpdateCheck) if err != nil { global.LOG.Error("IndexUpdateCheck err" + err.Error()) } } c.Start() } // CheckIndexCreate 检测指标数据是否生成 func CheckIndexCreate() { var err error defer func() { if err != nil && err.Error() != "record not found" { global.LOG.Info(utils.APPNAME + " 定时任务 出错" + time.Now().Format("2006-01-02 15:04:05") + ";Err:" + err.Error()) go alarm_msg.SendAlarmMsg(utils.APPNAME+" 定时任务 出错"+time.Now().Format("2006-01-02 15:04:05")+";Err:"+err.Error(), 3) } }() err = services.IndexCreateCheck() } // CheckIndexCreateMerge 检测指标数据是否生成 func CheckIndexCreateMerge() { var err error defer func() { if err != nil && err.Error() != "record not found" { global.LOG.Info(utils.APPNAME + " 定时任务 出错" + time.Now().Format("2006-01-02 15:04:05") + ";Err:" + err.Error()) //go alarm_msg.SendAlarmMsg(utils.APPNAME+" 定时任务 出错"+time.Now().Format("2006-01-02 15:04:05")+";Err:"+err.Error(), 3) } }() err = services.IndexCreateCheckMerge() }