task.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package init_serve
  2. import (
  3. "github.com/robfig/cron/v3"
  4. "hongze/mysteel_watch/services"
  5. "hongze/mysteel_watch/utils"
  6. "hongze/mysteel_watch/watch"
  7. "time"
  8. "hongze/mysteel_watch/global"
  9. "hongze/mysteel_watch/services/alarm_msg"
  10. )
  11. func InitTask() {
  12. c := cron.New(cron.WithSeconds())
  13. //每5分钟检测一次,指标生成
  14. _, err := c.AddFunc("0 */1 * * * *", CheckIndexCreate)
  15. if err != nil {
  16. global.LOG.Info("DownloadCvTask err" + err.Error())
  17. panic("DownloadCvTask err" + err.Error())
  18. }
  19. ////每30分钟检测一次,周度指标刷新
  20. _, err = c.AddFunc("0 */30 * * * *", services.IndexRefreshWeek)
  21. if err != nil {
  22. global.LOG.Info("DownloadCvTask err" + err.Error())
  23. panic("DownloadCvTask err" + err.Error())
  24. }
  25. //其他指标刷新
  26. _, err = c.AddFunc("0 00 03 * * *", services.IndexRefreshAll)
  27. if err != nil {
  28. global.LOG.Info("DownloadCvTask err" + err.Error())
  29. panic("DownloadCvTask err" + err.Error())
  30. }
  31. //其他指标刷新
  32. _, err = c.AddFunc("0 30 12 * * *", services.IndexRefreshAll)
  33. if err != nil {
  34. global.LOG.Info("DownloadCvTask err" + err.Error())
  35. panic("DownloadCvTask err" + err.Error())
  36. }
  37. c.Start()
  38. go watch.ListenFolderNew()
  39. go services.AutoRefresh()
  40. }
  41. //检测指标数据是否生成
  42. func CheckIndexCreate() {
  43. var err error
  44. defer func() {
  45. if err != nil {
  46. global.LOG.Info(utils.APPNAME + " 定时任务 出错" + time.Now().Format("2006-01-02 15:04:05") + ";Err:" + err.Error())
  47. go alarm_msg.SendAlarmMsg(utils.APPNAME+" 定时任务 出错"+time.Now().Format("2006-01-02 15:04:05")+";Err:"+err.Error(), 3)
  48. }
  49. }()
  50. err = services.IndexCreateCheck()
  51. }