scheduled定時任務之cron表示式

2021-10-01 18:29:40 字數 1617 閱讀 2909

corn表示式是乙個字串,由空格隔開分為6到7個域,每乙個域代表乙個含義

corn表示式有如下兩種語法:

(1)seconds minutes hours day month week year

(2)seconds minutes hours day month week

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

corn表示式的域除允許設定數字外,還可以使用一些特殊字元,提供列表,範圍,萬用字元等功能

時間域允許範圍

允許特殊字元

秒0-59

, - * /

分 0-59

, - * /

小時0-23

, - * /

日1-31

, - * ?/ l w c

月1-12

, - * /

星期1-7

, - * ? / l c #

年1970-2099

, - * /

星號():可用在所有欄位中,表示時間域的每乙個時刻,例如在分鐘字段代表每一分鐘

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

減號(-):表達乙個範圍,例如時字段中使用 10-12 代表10到12小時,即10,11,12小時

逗號(,):表達乙個列表值,例如星期字段使用"mon,wed,fri"表示星期一,星期三,星期五

斜槓(/):x/y代表乙個等步長序列,x為起始值,y為增量步長,例如在分鐘欄位中使用0/15,則表示為 0 ,15,30,45 分鐘,5/15表示為5,15,30,45

l:該字元只在星期和日期字段使用,在日期中表示月份的最後一天 31號 30號 閏年的二月份的29號,非閏年的28號,在星期中,乙個星期的最後一天是週六等同於7

w只出現在日期欄位中,對前導日期的修飾表示離該日期最近的工作日,例如15w表示離15號最近的工作日,如果15號是星期六,則匹配14號星期五,如果15號是週日,則匹配16號星期一,如果15號是工作日則匹配15號,該表示式不能跨月例如1w,匹配的是後面的最近的工作日

lw組合:日期欄位中可以lw組合,表示當月的最後乙個工作日

井號(#):該字元只能在星期中使用,表示當月某個工作日,例如6#3表示當月的第三個星期五,6表示星期五,如果乙個星期沒有第三個星期五任務不觸發

10.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 點執行一次

Scheduled 定時任務總結

scheduled 作用 spring定時器 定時執行一次或定時輪詢執行一段 使用場景 註解在方法上 引數說明 常用引數 scheduled 引數說明 string cron cron表示式定義了方法執行的時間規則 網上對這個的說明很多就不墨跡了 生成器工具位址 例子 scheduled fixed...

定時任務註解 Scheduled

scheduled cron 0 0 2 每天凌晨兩點執行 void dosomethingwith 乙個cron表示式有至少6個 也可能7個 有空格分隔的時間元素。按順序依次為 秒 0 59 分鐘 0 59 小時 0 23 天 月 0 31,但是你需要考慮你月的天數 月 0 11 天 星期 1 7...

spring 定時任務 scheduled 表示式

乙個cron表示式有至少6個 也可能7個 有空格分隔的時間元素。按順序依次為 秒 0 59 分鐘 0 59 小時 0 23 天 月 0 31,但是你需要考慮你月的天數 月 0 11 天 星期 1 7 1 sun 或 sun,mon,tue,wed,thu,fri,sat 7.年份 1970 2099...