CRON 表達式
一種排程的時間設定表達式,可以用在 CRON, Hangfire, Coravel。
最近工作需要用到 Hangfire 來作為工作排程器,而裡面關於定期執行工作(recurring)的時間設定是使用 cron expression。對於只用過 Windows 內建工作排程器的我來說可以說是相當陌生,因此來學學怎麼這種表達式的設定方式。
說明
工具型軟體 cron 是一款類Unix的作業系統下的基於時間的任務管理系統。用戶們可以通過 cron
在固定時間、日期、間隔下,運行定期任務(可以是命令和腳本)。
來源:Cron-維基百科
這個表達式其實內含「每次」這個概念,設定的值都是實際執行的日期和時間。
表達式: * * * * *
每個之間要有空格
欄位 | 分鐘 | 小時 | 日 | 月 | 星期 |
---|---|---|---|---|---|
範圍 | 0-59 | 0-23 | 1-31 | 1-12或JAN-DEC | 0-6或SUN-SAT |
除了直接輸入數字外,還可以搭配一些符號使用
*
:欄位的所有值。例如分鐘欄位輸入*
,代表每分鐘(0-59)都執行。,
:多個指定值。例如小時欄位輸入9,18
,代表9點和18點執行。-
:指定範圍。例如日欄位輸入15-20
,代表一個月裡的15日至20日都執行。/
:指定增量,開始值/每次增加的量
。例如分鐘欄位輸入1/10
,代表從1開始,每次10分鐘才再次執行。
練習
- 每天08:00:
0 8 * * *
- 每週一至週五22:30:
30 22 * * 1-5
- 每週末5分鐘一次:
*/5 * * * 0,6
- 每個雙數月1日的00:00:
0 0 1 */2 *
- 每月的15日03:00:
0 3 15 * *
可以到這裡驗證和練習 https://crontab.guru/