早上起來作喘,發(fā)現(xiàn)感冒了页藻,鼻子不通氣呀伙,頭暈?zāi)X脹的很是難受,也沒做點什么工作派敷,總結(jié)下Quartz中的時間配置。
** Quartz ** 是一個Java的開源作業(yè)調(diào)度框架沥阱,可以幫助我們執(zhí)行一些需要定時執(zhí)行的業(yè)務(wù)邏輯泣崩,這些業(yè)務(wù)邏輯可以是單次執(zhí)行的,也可以是周期性的等孵。
在使用Quartz時稚照,我們需要關(guān)注兩個主要的對象,一個是我們想要執(zhí)行的業(yè)務(wù)邏輯俯萌,一個是執(zhí)行的時間果录。下面整理下執(zhí)行時間的配置相關(guān)的信息。
格式: [秒] [分] [時] [日] [月] [周] [年]
| 名稱 | 是否必填 | 允許填寫的值或通配符 |
| :-------------: |:-------------:|: --------------------------------|
| 秒 | 是 | 0-59 - * / , |
| 分 | 是 | 0-59 - * / , |
| 時 | 是 | 0-23 - * / , |
| 日 | 是 | 1-31 - * / , ? L W |
| 月 | 是 | 1-12 - * / , JAN-DEC |
| 周 | 是 | 1-7 SUN-SAT - * ? , / L # |
| 年 | 否 |empty 1970-2099 - * / , |
通配符說明
- “-”:用于指定指定值的可選范圍咐熙,如
1-10
弱恒; - “*”:用于匹配所有值,即對應(yīng)位置的所有可選值都滿足條件棋恼;
- “/”:用于遞增觸發(fā)返弹,如 在分的位置設(shè)置
*/2
,表示每隔2分鐘觸發(fā)一次爪飘; - “,”:用于指定多個值的情況义起,如
MON,WED,FRI
; - “?”:用于忽略該位置的設(shè)置师崎,如時間設(shè)置為
0 15 10 ? * MON-FRI
默终,表示每周的周一至周五10:15觸發(fā),無需關(guān)心是幾號; - “L”:是last的意思穷蛹,表示最后的意思土陪,用在日上是表示最后一天,用在周上是指SAT肴熏,如果L與數(shù)字搭配使用鬼雀,則表示最后一個第幾天或周幾。如
0 0 12 L * ?
表示每月的最后一天的12點觸發(fā)蛙吏,0 0 12 ? * 6L
- “W”:是workday的意思源哩,表示周一到周五這五天工作日,與具體是數(shù)字或“L”聯(lián)合使用鸦做,如
15W
表示每月離15日最近的工作日励烦,如果15日是工作日,則15日觸發(fā)泼诱,如果15日是周六坛掠,則14日觸發(fā),如果15日是周日治筒,則16日觸發(fā)屉栓。 - “#”:表示第幾個周的周幾,如設(shè)置為
6#3
耸袜,表示在第3個周的周六觸發(fā)友多,如果設(shè)置的值沒有,則不再觸發(fā)堤框。
簡單示例:
0 0 10 7 * ?
每月7號是最開心的日子(因為發(fā)工資域滥,哈哈)0 0 15 ? * FRI
每周五下午3點活動的好時候-
0 11 11 11 11 ?
每年的11月11號 11點11分觸發(fā)(光棍節(jié))其實,只要記住順序蜈抓,根據(jù)自己的需要進行時間設(shè)置還是比較簡單的启绰,當然,普通的開發(fā)者使用的頻率也不是特別高资昧,感覺做運維的朋友會比較多的使用任務(wù)調(diào)度酬土。