gocron 表达式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
gocron 表达式
gocron表达式是一种表述定时任务的语法,它可以让我们非常方便地定义一个周期性任务或者定时任务,并且可以支持各种复杂的任务计划。
在使用gocron表达式之前,我们需要先了解它的基本语法规则。
gocron表达式的基本格式是五个字段,用空格分隔开来。
这五个字段分别表示任务的每分钟执行时刻、执行小时、执行日、执行月份、和
执行星期几。
其中,星期几字段可以省略,其他字段都不能省略。
下
面是一个常用的标准gocron表达式:
```
"0 0 12 * * ?"
```
这个gocron表达式的意思是:每天的中午12点整执行一次任务。
下面我们具体解释一下这个表达式的每个字段的含义。
第一个字段表示任务每分钟执行时刻。
它可以是一个具体的数字,也
可以是一个范围或者列表。
如果只写一个星号,表示任意分钟都可以
触发任务。
例如:
* 表示任意一个时刻都可以触发,也就是每分钟都可以执行。
1 表示每小时的第一分钟执行任务。
1-30 表示每小时的1分钟到30分钟都执行任务。
*/10 表示每10分钟执行一次任务。
```
第二个字段表示任务每小时执行时刻。
它的取值范围是0~23,也可以是一个范围或者列表。
例如:
```
* 表示任意一个小时都可以触发,也就是每小时都可以执行。
1 表示每天上午1点执行任务。
8-18 表示每天上午8点到下午6点都执行任务。
```
第三个字段表示任务每天执行时刻。
它的取值范围是1~31,也可以是一个范围或者列表。
例如:
```
* 表示任意一个天都可以触发,也就是每天都可以执行。
1 表示每个月的1日执行任务。
1,15,30 表示每个月的1日、15日、30日都执行任务。
第四个字段表示任务每月执行时刻。
它的取值范围是1~12,也可以是一个范围或者列表。
例如:
```
* 表示任意一个月都可以触发,也就是每个月都可以执行。
1 表示每年的1月份执行任务。
1,7,12 表示每年的1月、7月和12月都执行任务。
```
第五个字段表示任务每周执行时刻。
它的取值范围是1~7,也可以是一个范围或者列表。
例如:
```
* 表示任意一个星期都可以触发,也就是每个星期都可以执行。
1 表示每个星期一执行任务。
1-5 表示每个星期一到星期五都执行任务。
```
还有一个特殊的字符“?”用来指定gocron表达式中的星期几字段,因为有时候星期几和日期是互斥的,无法同时指定。
例如,我们要让一个任务在每个月的第一个星期一执行,可以使用下面这个gocron
表达式:
```
"0 0 1 ? * 2"
```
这个表达式的含义是:每个月的第一个星期一的凌晨零点执行一次任务。
除了上述基本的gocron表达式之外,还有一些高级的表达式语法,用来支持更复杂的任务计划。
例如,我们可以使用符号“L”来指定最后一个工作日或者星期几。
我们可以使用符号“W”来指定最近的工作日。
我们还可以使用符号“#”来指定某个月的第几个星期几。
这些高级语法在实际使用中非常有用,可以让我们更加灵活地定义任务计划。
综上所述,gocron表达式是一种非常方便和灵活的定时任务语法,可以让我们轻松地定义周期性任务和定时任务。
在实际应用中,我们需要深入了解这个语法的各种规则和高级语法,以便更好地利用它来实现我们的任务计划。