godoc
github官网
godoc 文档
Overview
用法
调用者可以注册要按给定时间表调用的 Func。Cron 将在它们自己的 goroutine 中运行它们。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
c := cron.New()
c.AddFunc("0 30 * * * *", func() { fmt.Println("每小时半点") })
c.AddFunc("@hourly", func() { fmt.Println("每小时") })
c.AddFunc("@每 1h30m", func() { fmt.Println("每小时三十分钟") })
c.Start()
..
// Func 在它们自己的 goroutine 中异步调用。
...
// Funcs 也可以添加到正在运行的 Cron 中
c.AddFunc("@daily", func() { fmt.Println("每天") })
..
// 检查 cron 作业条目的下一次和上一次运行时间。
inspect(c.Entries())
..
c.Stop() // 停止调度程序(不停止任何已经运行的作业)。
|
CRON 表达式格式
cron 表达式使用 6 个空格分隔的字段表示一组时间,从前到后的顺序是下面的表格从上到下的顺序
1
2
3
4
5
6
7
8
|
Field name | Mandatory? | Allowed values | Allowed special characters
---------- | ---------- | -------------- | --------------------------
Seconds | Yes | 0-59 | * / , -
Minutes | Yes | 0-59 | * / , -
Hours | Yes | 0-23 | * / , -
Day of month | Yes | 1-31 | * / , - ?
Month | Yes | 1-12 or JAN-DEC | * / , -
Day of week | Yes | 0-6 or SUN-SAT | * / , - ?
|
特殊字符:
- 星号 (*):表示 cron 表达式将匹配该字段的所有值
- 斜杠 (/):描述范围的增量,格式为
start-end\step
,特殊的有"*\/..."
对应"first-last/..."
,"N/..."
对应"N-MAX/..."
- 逗号 (,):分隔列表中的项目
- 连字符 (-):定义范围
- 问号(?):代替“*”来将月份中的某一天或星期几留空
预定义的时间表达式:
1
2
3
4
5
6
7
|
Entry | Description | Equivalent To
----- | ----------- | -------------
@yearly (or @annually) | Run once a year, midnight, Jan. 1st | 0 0 0 1 1 *
@monthly | Run once a month, midnight, first of month | 0 0 0 1 * *
@weekly | Run once a week, midnight between Sat/Sun | 0 0 0 * * 0
@daily (or @midnight) | Run once a day, midnight | 0 0 0 * * *
@hourly | Run once an hour, beginning of hour | 0 0 * * * *
|
按固定时间间隔定时运行
@every <duration>
:“duration”是 time.ParseDuration 接受的字符串,如@every 1h30m10s
时区
所有解释和调度都是在机器的本地时区完成的