cron每小時執行一次 cron 表示式

2021-10-11 06:51:39 字數 1938 閱讀 1341

cron 表示式是乙個字串,分為 6 或 7 個域,每乙個域代表乙個含義

cron 有如下兩種語法格式:

(1) seconds minutes hours day month week year

(2)seconds minutes hours day month week 一、結構

corn 從左到右(用空格隔開):秒 分 小時 月份中的日期 月份 星期中的日期 年份

二、各字段的含義

位置 時間網域名稱 允許值 允許的特殊字元

cron 表示式的時間欄位除允許設定數值外,還可使用一些特殊的字元,提供列表、範圍、萬用字元等功

能,細說如下:

●星號(*):可用在所有欄位中,表示對應時間域的每乙個時刻,例如,*在分鐘欄位時,表示「每分鐘」;

●問號(?):該字元只在日期和星期欄位中使用,它通常指定為「無意義的值」,相當於佔位符;

●減號(-):表達乙個範圍,如在小時欄位中使用「10-12」,則表示從 10 到 12 點,即 10,11,12;

●逗號(,):表達乙個列表值,如在星期欄位中使用「mon,wed,fri」,則表示星期一,星期三和星期

五;●斜槓(/):x/y 表達乙個等步長序列,x 為起始值,y 為增量步長值。如在分鐘欄位中使用 0/15,則

表示為 0,15,30 和 45 秒,而 5/15 在分鐘欄位中表示 5,20,35,50,你也可以使用*/y,它等同於 0/y;

●l:該字元只在日期和星期欄位中使用,代表「last」的意思,但它在兩個欄位中意思不同。l 在日期

欄位中,表示這個月份的最後一天,如一月的 31 號,非閏年二月的 28 號;如果 l 用在星期中,則表示星

期六,等同於 7。但是,如果 l 出現在星期欄位裡,而且在前面有乙個數值 x,則表示「這個月的最後 x 天」,

例如,6l 表示該月的最後星期五;

●w:該字元只能出現在日期欄位裡,是對前導日期的修飾,表示離該日期最近的工作日。例如 15w

表示離該月 15 號最近的工作日,如果該月 15 號是星期六,則匹配 14 號星期五;如果 15 日是星期日,

則匹配 16 號星期一;如果 15 號是星期二,那結果就是 15 號星期二。但必須注意關聯的匹配日期不能夠

跨月,如你指定 1w,如果 1 號是星期六,結果匹配的是 3 號星期一,而非上個月最後的那天。w 字串

只能指定單一日期,而不能指定日期範圍;

●lw 組合:在日期字段可以組合使用 lw,它的意思是當月的最後乙個工作日;

●井號(#):該字元只能在星期欄位中使用,表示當月某個工作日。如 6#3 表示當月的第三個星期五(6

表示星期五,#3 表示當前的第三個),而 4#5 表示當月的第五個星期三,假設當月沒有第五個星期三,

忽略不觸發;

● c:該字元只在日期和星期欄位中使用,代表「calendar」的意思。它的意思是計畫所關聯的日期,

如果日期沒有被關聯,則相當於日曆中所有日期。例如 5c 在日期欄位中就相當於日曆 5 日以後的第一天。

1c 在星期欄位中相當於星期日後的第一天。

cron 表示式對特殊字元的大小寫不敏感,對代表星期的縮寫英文大小寫也不敏感。

例子:@scheduled(cron = "0 0 1 1 1 ?")//每年一月的一號的 1:00:00 執行一次

@scheduled(cron = "0 0 1 1 1,6 ?") //一月和六月的一號的 1:00:00 執行一次

@scheduled(cron = "0 0 1 1 1,4,7,10 ?") //每個季度的第乙個月的一號的 1:00:00 執行一次

@scheduled(cron = "0 0 1 1 * ?")//每月一號 1:00:00 執行一次

@scheduled(cron="0 0 1 * * *") //每天凌晨 1 點執行一次

cron每小時執行一次的表示式

cron每小時執行一次的表示式 常用表示式例子 1 0 2 表示每2秒 執行任務 1 00 2 表示每2分鐘 執行任務 1 002 1 表示在每月的1日的凌晨2點調整任務 2 0 1510 mon fri 表示周一到周五每天上午10 15執行作業 3 0 1510 6l 2002 2006 表示20...

crontab每小時執行一次

先給出crontab的語法格式 對於網上很多給出的每小時定時任務寫法,可以說絕大多數都是錯誤的!比如對於下面的這種寫法 00 每隔一小時執行一次 00 1 與上面是相同的任務 這種是正確的嗎?對照最前面給出的語法格式來看,這個定時任務在0分 每小時 每天 每月 每星期執行,看起來似乎很合理啊?前乙個...

crontab每小時執行一次

先給出crontab的語法格式 對於網上很多給出的每小時定時任務寫法,可以說絕大多數都是錯誤的!比如對於下面的這種寫法 00 每隔一小時執行一次 00 1 與上面是相同的任務 這種是正確的嗎?對照最前面給出的語法格式來看,這個定時任務在0分 每小時 每天 每月 每星期執行,看起來似乎很合理啊?前乙個...