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/