cron库简介
# cron
库简介
cron
是Go
包,它提供了一种定时任务的管理。它具有单行检索,点表示法路径,迭代和解析json
行等功能。
# 开源库地址
robfig/cron: a cron library for go (github.com) (opens new window)
# 安装
go get github.com/robfig/cron/v3@v3.0.0
1
# cron
表达式
┌─────────────second 范围 (0 - 60)
│ ┌───────────── min (0 - 59)
│ │ ┌────────────── hour (0 - 23)
│ │ │ ┌─────────────── day of month (1 - 31)
│ │ │ │ ┌──────────────── month (1 - 12)
│ │ │ │ │ ┌───────────────── day of week (0 - 6) (0 to 6 are Sunday to
│ │ │ │ │ │ Saturday)
│ │ │ │ │ │
│ │ │ │ │ │
* * * * * *
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 基础示例
package main
import (
"fmt"
"github.com/robfig/cron"
)
//主函数
func main() {
cron2 := cron.New() //创建一个cron实例
//执行定时任务(每5秒执行一次)
err:= cron2.AddFunc("*/5 * * * *", print5)
if err!=nil{
fmt.Println(err)
}
//启动/关闭
cron2.Start()
defer cron2.Stop()
select {
//查询语句,保持程序运行,在这里等同于for{}
}
}
//执行函数
func print5() {
fmt.Println("每5s执行一次cron")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
注意
cron
表达式格式可以自行百度,这里不再赘述。 需要强调的是,cron
默认支持到分钟级别,如果需要支持到秒级别,在初始化 cron
时,记得 cron.WithSeconds()
参数
cron2 := cron.New(
cron.WithSeconds(), // 添加秒级别支持,默认支持最小粒度为分钟
) //创建一个cron实例
1
2
3
2
3
编辑 (opens new window)