定時任務
參考地址
https://www.jianshu.com/p/fd3dda663953
擴充套件
go get -u github.com/robfig/cron
example
比如我們的手機卡假設都是在每個月的開始時間就更新資費:
"0 0 0 1 * *"
"0 1 1 1 * *"
每隔5秒執行一次:"*/5 * * * * ?"
每隔1分鐘執行一次:"0 */1 * * * ?"
每天23點執行一次:"0 0 23 * * ?"
每天凌晨1點執行一次:"0 0 1 * * ?"
每月1號凌晨1點執行一次:"0 0 1 1 * ?"
在26分、29分、33分執行一次:"0 26,29,33 * * * ?"
每天的0點、13點、18點、21點都執行一次:"0 0 0,13,18,21 * * ?"
pre-defined schedules
Entry |
Description |
Equivalent To |
@yearly (or @annually) |
每年一次,1月1日午夜 |
0 0 0 1 1 * |
@monthly |
每月執行一次,午夜,月初 |
0 0 0 1 * * |
@weekly |
每週跑步一次,週六和週日之間的午夜 |
0 0 0 * * 0 |
@daily (or @midnight) |
每天午夜跑步一次 |
0 0 0 * * * |
@hourly |
每小時執行一次,每小時開始 |
0 0 * * * * |
@every |
每段時間 |
|
案例
c.AddFunc("@every 1h30m", func() { fmt.Println("Every hour thirty") })
圖文解釋
┌─────────────second 範圍 (0 - 60)
│ ┌───────────── min (0 - 59)
│ │ ┌────────────── hour (0 - 23)
│ │ │ ┌─────────────── day of month (1 - 31)
│ │ │ │ ┌──────────────── month (1 - 12)
│ │ │ │ │ ┌───────────────── day of week (0 - 6) (0 to 6 are Sunday to
│ │ │ │ │ │ Saturday)
│ │ │ │ │ │
│ │ │ │ │ │
* * * * * *
匹配符號
星號(*) :表示 cron 表示式能匹配該欄位的所有值。如在第5個欄位使用星號(month),表示每個月
斜線(/):表示增長間隔,如第2個欄位(minutes) 值是 3-59/15,表示每小時的第3分鐘開始執行一次,之後 每隔 15 分鐘執行一次(即 3(3+0*15)、18(3+1*15)、33(3+2*15)、48(3+3*15) 這些時間點執行),這裡也可以表示為:3/15
逗號(,):用於列舉值,如第6個欄位值是 MON,WED,FRI,表示 星期一、三、五 執行
連字號(-):表示一個範圍,如第3個欄位的值為 9-17 表示 9am 到 5pm 直接每個小時(包括9和17)
問號(?):只用於 日(Day of month) 和 星期(Day of week),表示不指定值,可以用於代替 *
常用任務
每隔5秒執行一次:*/5 * * * * ?
每隔1分鐘執行一次:0 */1 * * * ?
每天23點執行一次:0 0 23 * * ?
每天凌晨1點執行一次:0 0 1 * * ?
每月1號凌晨1點執行一次:0 0 1 1 * ?
在26分、29分、33分執行一次:0 26,29,33 * * * ?
每天的0點、13點、18點、21點都執行一次:0 0 0,13,18,21 * * ?
*/ 和 0/ 的區別
本作品採用《CC 協議》,轉載必須註明作者和本文連結