cron(定時任務),按照約定的時間,定時的執行特定的任務(job),cron 表示式表達了這種約定。
格式一:
cron表示式是乙個字串,字串分為6個域,中間以空格隔開,每個域代表乙個含義
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)字段如果沒提供,相當於是 *
格式二:
@yearly @annually 每年執行
@monthly 每月執行
@weekly 每週執行
@dail @midnight 每天執行
@hourly 每小時執行
@every +空格+ hm*s(*表示具體的數字,h小時,m分鐘,s秒) 例如:@every 2h10m 表示每2小時10分鐘執行一次
1)星號(*)
表示 cron表示式能匹配該字段的所有值。如在第5個字段使用星號(month),表示每個月
2)斜線(/)
表示增長間隔,如第1個字段(minutes)值是 3-59/15,表示每小時的第3分鐘開始執行一次,之後每隔 15 分鐘執行一次(即 3、18、33、48這些時間點執行),這裡也可以表示為:3/15
例如:spec := 「*/5 * * * * *」 //每隔5s執行一次
3)逗號(,)
用於列舉值,如第6個字段值是 mon,wed,fri,表示星期
一、三、五執行
例如: spec := 「* 52,54 9 * * *」 //每天9:52分和9:54分的每秒都執行一次
4)連字型大小(-)
表示乙個範圍,如第3個字段的值為 9-17 表示 9am到 5pm直接每個小時(包括9和17)
例如:spec := 「15-30 * * * * *」 //每分鐘的15-30s執行定時任務
5)問號(?)
只用於日(day of month)和星期(day of week),表示不指定值,可以用於代替 *
//阻塞主線程不退出
}
Golang中的定時任務
timer 設定定時器,經過duration時間,timer會被觸發,timer被觸發之後,呼叫reset函式,重新設定定時器,再經過duration的時間,timer會被再次觸發。使用方式 ticker 設定週期定時器,每間隔duration時間,會將當前的時間傳送到chan中,讀端可以從chan...
golang的定時任務
golang的定時任務使用的是cron這個包來解決的 cron包的基礎知識 欄位名是否必須 允許的值 允許的特定字元 秒 seconds 是0 59 分 minutes 是0 59 時 hours 是0 23 日 day of month 是1 31 月 month 是1 12 星期 day of ...
Golang定時任務簡單實現
go get github.com robfig cron開啟乙個定時 根據cron表示式進行時間排程,cron可以精確到秒,大部分表示式格式也是從秒開始。c cron.new 預設從分開始,所以加上cron.withseconds 保證定時按照表示式字面意思執行。func main c.start...