這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
cron定時任務使用"github.com/jakecoffman/cron"包
func conDemo() {
spec := "*/5 * * * * ?" //每5s執行一次
cronJob := cron.New()
//cronJob.RemoveJob()//要刪除任務使用這個方法
cronJob.AddFunc(spec, conFun, "cronFun")
cronJob.Start()
}
func conFun() {
fmt.Println("this is conFun Test")
}
以上是每5秒列印一次this is conFun Test
時間的定義資訊:
欄位名 是否必須 允許的值 允許的特定字元
秒(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、星期欄位如果沒提供,相當於是 *
3、星號(*):表示 cron 運算式能匹配該欄位的所有值。如在第5個欄位使用星號(month),表示每個月,如果值為:* 21 18 * * ?,則表示,在每天的18點21分裡的每秒都會執行一次
4、斜線(/):表示增長間隔,如第1個欄位(minutes) 值是3-59/15,表示每小時的第3分鐘開始執行一次,之後每隔 15 分鐘執行一次(即 3、18、33、48 這些時間點執行),這裡也可以表示為:3/15
5、逗號(,):用於枚舉值,如第6個欄位值是 MON,WED,FRI,表示 星期一、三、五 執行
6、連字號(-):表示一個範圍,如第3個欄位的值為 9-17 表示 9am 到 5pm 直接每個小時(包括9和17)
7、問號(?):只用於 日(Day of month) 和 星期(Day of week),表示不指定值,可以用於代替 *