1. 程式人生 > >spring 自帶的定時器task

spring 自帶的定時器task

Cron表示式包括下面7個欄位並區別順序0-590-59小時0-23月內日期1-311-12或者JAN-DEC周內日期1-7或者SUN-SAT(可選欄位)留空或者1970-2099並且通過特殊字元表示特殊意義具體為下
斜線(/)字元表示增量值例如在秒欄位中"5/15"代表從第5秒開始15秒一次問號(?)字元和字母L字元只有在月內日期和周內日期欄位中可用問號表示這個欄位不包含具體值所以如果指定月內日期可以在周內日期欄位中插入"?"表示周內日期值無關緊要這裡有個很蛋疼的設定,無關Quartz,而是Spring整合Quartz後,它自己加的一個約束,那就是:日期(1-31)
和星期(SUN-SAT)兩者,必須有一個是問號(?),系統在啟動的時候,Spring會檢查表示式,如果不符合它的規則,就會拋異常。所以在使用的時候這個地方一定要注意,而這個在Linux上執行Cron是沒有這個限制的。
字母L字元是last的縮寫放在月內日期欄位中表示安排在當月最後一天執行在周內日期欄位中如果"L"單獨存在,就等於"7"否則代表當月內周內日期的最後一個例項所以"0L"表示安排在當月的最後一個星期日執行字母(W)字元把執行安排在最靠近指定值的工作日"1W"放在月內日期欄位中表示把執行安排在當月的第一個工作日內
井號(#)字元為給定月份指定具體的工作日例項"MON#2"
放在周內日期欄位中表示把任務安排在當月的第二個星期一
星號(*)字元是通配字元,表示該欄位可以接受任何可能的值表示式例子。
例子:
"0 0 08 * * ?" 每天上午8點觸發
"0 15 10 ? * *" 每天上午10:15觸發
"0 15 10 * * ?" 每天上午10:15觸發
"0 15 10 * * ? *" 每天上午10:15觸發
"0 15 10 * * ? 2005" 2005年的每天上午10:15觸發
"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分鐘觸發
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:102:44觸發
"0 15 10 ? * MON-FRI" 週一至週五的上午10:15觸發
"0 15 10 15 * ?" 每月15日上午10:15觸發
"0 15 10 L * ?" 每月最後一日的上午10:15觸發
"0 15 10 ? * 6L" 每月的最後一個星期五上午10:15觸發
"0 15 10 ? * 6L 2009-2019" 2009年至2019年的每月的最後一個星期五上午10:15觸發
"0 15 10 ? * 6#3" 每月的第三個星期五上午10:15觸發