@Scheduled(cron = "* * * * * *")


1. cron表達式格式:

{秒數} {分鍾} {小時} {日期} {月份} {星期} {年份(可為空)}

  • “*”字符代表所有可能的值。“*”{月份}里表示每個月的含義。
  • “/”字符用來指定數值的增量。
    {分鍾} 里的“0/15”表示從第0分鍾開始,每15分鍾。
    {分鍾}里的“3/20”表示從第3分鍾開始,每20分鍾(它和“3,23,43”)的含義一樣。
  • “L” 字符僅被用於{日期}{星期},它是單詞“last”的縮寫。
    {日期},“L”表示一個月的最后一天。
    {星期},“L”表示一個星期的最后一天,也就是SAT
  • 如果在“L”前有具體的內容,它就具有其他的含義了。
    “6L”表示這個月的倒數第6天,“FRIL”表示這個月的最一個星期五。
    注意:在使用“L”參數時,不要指定列表或范圍,
  • 由於{日期}{星期}這兩個元素互斥的, 其中之一被指定了值以后, 必須要對另一個設為”?”
2. cron表達式各占位符解釋:
  • {秒數}{分鍾} ==> 允許值范圍: 0~59 ,不允許為空值。
  • “*” 代表每隔1秒鍾觸發。
  • “,” 代表在指定的秒數觸發。比如”0,15,45”代表0秒、15秒和45秒時觸發任務。
  • “-“代表在指定的范圍內觸發,比如”25-45”代表從25秒開始觸發到45秒結束觸發,每隔1秒觸發1次。
  • {小時} ==> 允許值范圍: 0~23 ,不允許為空值,若值不合法。占位符和秒數一樣。
  • {日期} ==> 允許值范圍: 1~31 ,不允許為空值。
  • {月份} ==> 允許值范圍: 0~11
  • {星期} ==> 允許值范圍: 1~7 (或 SUN,MON,TUE,WED,THU,FRI,SAT), 1代表星期天(SUN),以此類推,7代表星期六(SAT),不允許為空值。
  • {年份} ==> 允許值范圍: 1970~2099 ,允許為空。
3. 經典案例

“30 * * * * ?” 每半分鍾觸發任務
“30 10 * * * ?” 每小時的10分30秒觸發任務
“30 10 1 * * ?” 每天1點10分30秒觸發任務
“0 0 10,14,16 * * ?” 每天上午10點,下午2點,4點
“0 0/30 9-17 * * ?” 朝九晚五工作時間內每半小時
“0 * 14 * * ?” 在每天下午2點到下午2:59期間的每1分鍾觸發
“0 0/5 14 * * ?” 在每天下午2點到下午2:55期間的每5分鍾觸發
“0 0/5 14,18 * * ?” 在每天下午2點到2:55期間和下午6點到6:55期間的每5分鍾觸發
“0 0-5 14 * * ?” 在每天下午2點到下午2:05期間的每1分鍾觸發

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




舉幾個例子: 

每隔5秒執行一次:"*/5 * * * * ?"

每隔1分鍾執行一次:"0 */1 * * * ?"

每天23點執行一次:"0 0 23 * * ?"

每天凌晨1點執行一次:"0 0 1 * * ?"

每月1號凌晨1點執行一次:"0 0 1 1 * ?"

每月最后一天23點執行一次:"0 0 23 L * ?"

每周星期天凌晨1點實行一次:"0 0 1 ? * L"

在26分、29分、33分執行一次:"0 26,29,33 * * * ?"

每天的0點、13點、18點、21點都執行一次:"0 0 0,13,18,21 * * ?"

表示在每月的1日的凌晨2點調度任務:"0 0 2 1 * ? *"

表示周一到周五每天上午10:15執行作業:"0 15 10 ? * MON-FRI" 

表示2002-2006年的每個月的最后一個星期五上午10:15執行:"0 15 10 ? 6L 2002-2006"


免責聲明!

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



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