1.背景
实现
- 凌晨生成报表
- 定时刷新缓存
- 定时监测任务状态
- ...
2.实现
cron 表达式 同 java cron 无巨大差别 注意版本 有所不同
golang
package main
import (
"fmt"
"github.com/robfig/cron/v3"
"time"
)
func main() {
c := cron.New()
c.AddFunc("* * * * *", func() {
fmt.Println("==== run function 1", time.Now().Format(time.RFC3339))
})
c.AddFunc("* * * * *", func() {
fmt.Println("==== run function 2", time.Now().Format(time.RFC3339))
})
c.Start()
t1 := time.NewTimer(time.Second * 10)
// 阻塞程序不往下走,测试用
for {
select {
case <-t1.C:
t1.Reset(time.Second * 10)
}
}
}
3.结论
通过cron 实现 定时执行任务