@Scheduled(cron = "* * * * * *") cron表達式詳解


1.cron表達式格式:
{秒數} {分鍾} {小時} {日期} {月份} {星期} {年份(可為空)}

2.cron表達式各占位符解釋:
{秒數}{分鍾} ==> 允許值范圍: 0~59 ,不允許為空值,若值不合法,調度器將拋出SchedulerException異常
“*” 代表每隔1秒鍾觸發;
“,” 代表在指定的秒數觸發,比如”0,15,45”代表0秒、15秒和45秒時觸發任務
“-“代表在指定的范圍內觸發,比如”25-45”代表從25秒開始觸發到45秒結束觸發,每隔1秒觸發1次
“/”代表觸發步進(step),”/”前面的值代表初始值(““等同”0”),后面的值代表偏移量,比如”0/20”或者”/20”代表從0秒鍾開始,每隔20秒鍾觸發1次,即0秒觸發1次,20秒觸發1次,40秒觸發1次;”5/20”代表5秒觸發1次,25秒觸發1次,45秒觸發1次;”10-45/20”代表在[10,45]內步進20秒命中的時間點觸發,即10秒觸發1次,30秒觸發1次
{小時} ==> 允許值范圍: 0~23 ,不允許為空值,若值不合法,調度器將拋出SchedulerException異常,占位符和秒數一樣
{日期} ==> 允許值范圍: 1~31 ,不允許為空值,若值不合法,調度器將拋出SchedulerException異常
{星期} ==> 允許值范圍: 1~7 (SUN-SAT),1代表星期天(一星期的第一天),以此類推,7代表星期六(一星期的最后一天),不允許為空值,若值不合法,調度器將拋出SchedulerException異常
{年份} ==> 允許值范圍: 1970~2099 ,允許為空,若值不合法,調度器將拋出SchedulerException異常

注意:除了{日期}和{星期}可以使用”?”來實現互斥,表達無意義的信息之外,其他占位符都要具有具體的時間含義,且依賴關系為:年->月->日期(星期)->小時->分鍾->秒數

3.cron表達式的強大魅力在於靈活的橫向和縱向組合以及簡單的語法,用cron表達式幾乎可以寫出任何你想要觸發的時間點與周期
經典案例:
“30 * * * * ?” 每半分鍾觸發任務
“30 10 * * * ?” 每小時的10分30秒觸發任務
“30 10 1 * * ?” 每天1點10分30秒觸發任務
“30 10 1 20 * ?” 每月20號1點10分30秒觸發任務
“30 10 1 20 10 ? *” 每年10月20號1點10分30秒觸發任務
“30 10 1 20 10 ? 2011” 2011年10月20號1點10分30秒觸發任務
“30 10 1 ? 10 * 2011” 2011年10月每天1點10分30秒觸發任務
“30 10 1 ? 10 SUN 2011” 2011年10月每周日1點10分30秒觸發任務
“15,30,45 * * * * ?” 每15秒,30秒,45秒時觸發任務
“15-45 * * * * ?” 15到45秒內,每秒都觸發任務
“15/5 * * * * ?” 每分鍾的每15秒開始觸發,每隔5秒觸發一次
“15-30/5 * * * * ?” 每分鍾的15秒到30秒之間開始觸發,每隔5秒觸發一次
“0 0/3 * * * ?” 每小時的第0分0秒開始,每三分鍾觸發一次
“0 15 10 ? * MON-FRI” 星期一到星期五的10點15分0秒觸發任務
“0 15 10 L * ?” 每個月最后一天的10點15分0秒觸發任務
“0 15 10 LW * ?” 每個月最后一個工作日的10點15分0秒觸發任務
“0 15 10 ? * 5L” 每個月最后一個星期四的10點15分0秒觸發任務
“0 15 10 ? * 5#3” 每個月第三周的星期四的10點15分0秒觸發任務

參考: https://blog.csdn.net/m0_37179470/article/details/81271607 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM