task.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package init_serve
  2. import (
  3. "eta/mysteel_watch/services"
  4. "eta/mysteel_watch/utils"
  5. "eta/mysteel_watch/watch"
  6. "github.com/robfig/cron/v3"
  7. "time"
  8. "eta/mysteel_watch/global"
  9. "eta/mysteel_watch/services/alarm_msg"
  10. )
  11. func InitTask() {
  12. // 异步处理待刷新的excel
  13. go services.AutoRefresh()
  14. // 异步处理已经变更过的excel
  15. go watch.HandleFileUpdate()
  16. c := cron.New(cron.WithSeconds())
  17. //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
  18. //每5分钟检测一次,指标生成
  19. _, err := c.AddFunc("0 */5 * * * *", CheckIndexCreateMerge)
  20. if err != nil {
  21. global.LOG.Error("CheckIndexCreateMerge err" + err.Error())
  22. }
  23. // 定时统一更新(日度、周度指标)
  24. //if len(global.CONFIG.Serve.RefreshTimeList) <= 0 {
  25. // //panic("未配置数据统一刷新时间")
  26. // // 未配置时间的话,那么默认每天17点更新一次
  27. // global.CONFIG.Serve.RefreshTimeList = append(global.CONFIG.Serve.RefreshTimeList, "0 0 17 * * *")
  28. //}
  29. //for _, timeStr := range global.CONFIG.Serve.RefreshTimeList {
  30. // _, tmpErr := c.AddFunc(timeStr, services.MergeDayAndWeek)
  31. // if tmpErr != nil {
  32. // global.LOG.Error("services.MergeDayAndWeek 服务启动失败" + "时间:" + timeStr + ";err:" + tmpErr.Error())
  33. // }
  34. //}
  35. //
  36. //// 每天早上7点处理一次
  37. //_, err = c.AddFunc("0 0 7 * * *", services.MergeMonthSeasonYear)
  38. //if err != nil {
  39. // global.LOG.Error("services.MergeMonthSeasonYear err" + err.Error())
  40. //}
  41. //每2分钟检测一次指标文件是否更新
  42. _, err = c.AddFunc("0 */2 * * * *", watch.ReadWatchIndexFile)
  43. if err != nil {
  44. global.LOG.Error("watch.ReadWatchIndexFile err" + err.Error())
  45. }
  46. // 服务检测
  47. _, err = c.AddFunc("0 */1 * * * *", services.ServerCheck)
  48. if err != nil {
  49. global.LOG.Error("ServerCheck err" + err.Error())
  50. }
  51. // 每30分钟检测一次是否需要刷新数据
  52. _, err = c.AddFunc("0 */30 * * * *", services.CheckRefreshConfig)
  53. if err != nil {
  54. global.LOG.Error("services.CheckRefreshConfig err" + err.Error())
  55. }
  56. // 指标更新检测
  57. if global.CONFIG.Serve.IsCheckIndexUpdate {
  58. services.IndexUpdateCheck()
  59. _, err = c.AddFunc("0 30 17 * * *", services.IndexUpdateCheck)
  60. if err != nil {
  61. global.LOG.Error("IndexUpdateCheck err" + err.Error())
  62. }
  63. }
  64. c.Start()
  65. }
  66. // CheckIndexCreate 检测指标数据是否生成
  67. func CheckIndexCreate() {
  68. var err error
  69. defer func() {
  70. if err != nil && err.Error() != "record not found" {
  71. global.LOG.Info(utils.APPNAME + " 定时任务 出错" + time.Now().Format("2006-01-02 15:04:05") + ";Err:" + err.Error())
  72. go alarm_msg.SendAlarmMsg(utils.APPNAME+" 定时任务 出错"+time.Now().Format("2006-01-02 15:04:05")+";Err:"+err.Error(), 3)
  73. }
  74. }()
  75. err = services.IndexCreateCheck()
  76. }
  77. // CheckIndexCreateMerge 检测指标数据是否生成
  78. func CheckIndexCreateMerge() {
  79. var err error
  80. defer func() {
  81. if err != nil && err.Error() != "record not found" {
  82. global.LOG.Info(utils.APPNAME + " 定时任务 出错" + time.Now().Format("2006-01-02 15:04:05") + ";Err:" + err.Error())
  83. //go alarm_msg.SendAlarmMsg(utils.APPNAME+" 定时任务 出错"+time.Now().Format("2006-01-02 15:04:05")+";Err:"+err.Error(), 3)
  84. }
  85. }()
  86. err = services.IndexCreateCheckMerge()
  87. }