scheduler.go 846 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package scheduler
  2. import (
  3. "log"
  4. "github.com/robfig/cron/v3"
  5. )
  6. func Init() *cron.Cron {
  7. c := cron.New()
  8. c.AddFunc("@every 1h", func() {
  9. log.Println("每小时任务执行")
  10. // do job
  11. })
  12. // 每天 14:00 执行一次
  13. // robfig/cron 默认支持 6 字段:秒 分 时 日 月 星期
  14. // "0 0 14 * * *" 秒=0, 分=0, 时=14,每天执行
  15. // c.AddFunc("0 0 14 * * *", func() {
  16. // log.Println("每天 14:00 执行Shutdown统计")
  17. // // 获取当前时间
  18. // now := time.Now()
  19. // // 计算前天(往前两天)
  20. // beforeYesterday := now.AddDate(0, 0, -2)
  21. // // 格式化为字符串(按 yyyy-MM-dd)
  22. // beforeYesterdayStr := beforeYesterday.Format(time.DateOnly)
  23. // taskQueue.EnqueueShutdownStatisticsTask(domain.TaskShutdownStatistics{
  24. // Date: beforeYesterdayStr,
  25. // })
  26. // })
  27. c.Start()
  28. return c
  29. }