period_cron.go 937 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package tasks
  2. import (
  3. "app/commons/config"
  4. "app/commons/core"
  5. "app/tasks/period_profit"
  6. "app/tasks/quota"
  7. "github.com/robfig/cron/v3"
  8. )
  9. func RunPeriodCron() {
  10. crontab := cron.New(cron.WithSeconds()) // 秒级定时任务
  11. jobRule := "1 0 */2 * * *"
  12. cid, err := crontab.AddFunc(jobRule, PeriodTask)
  13. if err != nil {
  14. core.JobLog.Errorf("PeriodTask:%s", err.Error())
  15. return
  16. }
  17. core.JobLog.Infof("PeriodTask:%s 启动成功cId:%d", jobRule, cid)
  18. crontab.Run()
  19. }
  20. func PeriodTask() {
  21. if !beginCron() {
  22. core.JobLog.Infof("corn is running...")
  23. return
  24. }
  25. defer endCron()
  26. var err error
  27. // 指标处理
  28. err = quota.NewService().RunQuotaHandler()
  29. if err != nil {
  30. return
  31. }
  32. isTest := config.AppConf().Mod != config.ModEnvProd
  33. // 收益任务
  34. // false 当日任务 -- 用于正式
  35. // true 下一日任务 -- 用于手动测试
  36. err = period_profit.NewService().RunPeriodProfit(isTest)
  37. if err != nil {
  38. return
  39. }
  40. }