| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package scheduler
- import (
- "log"
- "time"
- "github.com/robfig/cron/v3"
- "go.uber.org/zap"
- )
- func Init() *cron.Cron {
- c := cron.New()
- // c.AddFunc("@every 1h", func() {
- // log.Println("每小时任务执行")
- // // do job
- // })
- c.AddFunc("30 10 * * *", func() {
- log.Println("每天10:30任务执行")
- // do job
- })
- c.AddFunc("10 12 * * *", func() {
- log.Println("每天12:10任务执行")
- // do job
- })
- // 每天 14:00 执行一次
- // robfig/cron 默认支持 6 字段:秒 分 时 日 月 星期
- // "0 0 14 * * *" 秒=0, 分=0, 时=14,每天执行
- c.AddFunc("35 15 * * *", func() {
- log.Println("每天 15:35 执行Shutdown统计")
- // 获取当前时间
- // now := time.Now()
- // 计算前天(往前两天)
- // beforeYesterday := now.AddDate(0, 0, -2)
- // 格式化为字符串(按 yyyy-MM-dd)
- // beforeYesterdayStr := beforeYesterday.Format(time.DateOnly)
- // TODO 暂停每日任务
- // taskQueue.EnqueueShutdownStatisticsTask(domain.TaskShutdownStatistics{
- // Date: beforeYesterdayStr,
- // })
- })
- c.Start()
- // 打印任务计划表
- entries := c.Entries()
- var entriesStr []string
- for _, i := range entries {
- entriesStr = append(entriesStr, i.Next.Format(time.DateTime))
- }
- zap.L().Debug("cron entries", zap.Any("entries", entriesStr))
- return c
- }
|