Contents

go第三方库-Github.com.robfig.cron

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

时区

所有解释和调度都是在机器的本地时区完成的

 |