| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package scheduler
- import (
- "fwh-toolbox-server/domain"
- "fwh-toolbox-server/taskQueue"
- "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)
- 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
- }
|