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

原文鏈接:https://blog.csdn.net/m0_37179470/article/details/81271607

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秒觸發任務

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章