cron基本使用

摘自: https://blog.csdn.net/skh2015...
cron表達式共有六個域, *.*.*.*.*.*分別表示 Seconds, Minutes, Hours, DayofMonth, Month, DayofWeek
  • 基本格式
字段名 是否必須 容許的值 容許的特定字符
秒(Seconds) 0-59 * / , –
分(Minutes) 0-59 * / , –
時(Hours) 0-23 * / , –
日((Day of month) 1-31 * / , – ?
月((Month) 1-12 or JAN-DEC * / , –
星期(Day of week) 0-6 or SUM-SAT * / , – ?

1)月(Month)和星期(Day of week)字段的值不區分大小寫,如:SUN、Sun和 sun是同樣的。
2)星期(Day of week)字段若是沒提供,至關因而 *java

  • 特殊字符

1)星號(*)
表示cron表達式能匹配該字段的全部值。如在第5個字段使用星號(month),表示每一個月git

2)斜線(/)
表示增加間隔,如第1個字段(minutes)值是3-59/15,表示每小時的第3分鐘開始執行一次,以後每隔 15 分鐘執行一次(即 三、1八、3三、48這些時間點執行),這裏也能夠表示爲:3/15github

例如:spec := "/5 " //每隔5s執行一次golang

3)逗號(,)
用於枚舉值,如第6個字段值是 MON,WED,FRI,表示星期1、3、五執行
例如: spec := " 52,54 9 " //天天9:52分和9:54分的每秒都執行一次.net

4)連字號(-)
表示一個範圍,如第3個字段的值爲 9-17 表示 9am到 5pm直接每一個小時(包括9和17)
例如:spec := "15-30 *" //每分鐘的15-30s執行定時任務code

5)問號(?)
只用於日(Day of month)和星期(Day of week),表示不指定值,能夠用於代替 *blog

  • golang語言中使用
package main
 
import (
   "github.com/robfig/cron"
   "log"
)
 
func main() {
    i:= 0
    c:= cron.New()
   spec := "*/5 * * * * ?"
   c.AddFunc(spec, func() {
       i++
        log.Println("cron running:", i)
   })
   c.Start()
 
   select{}
相關文章
相關標籤/搜索