摘要:請(qǐng)注意,觸發(fā)器將不會(huì)在上午點(diǎn)開始,僅在,,和請(qǐng)注意,一些調(diào)度要求太復(fù)雜,無(wú)法用單一觸發(fā)表示例如每上午至之間每分鐘,下午至晚上點(diǎn)之間每分鐘一次。在這種情況下的解決方案是簡(jiǎn)單地創(chuàng)建兩個(gè)觸發(fā)器,并注冊(cè)它們來(lái)運(yùn)行相同的作業(yè)。
表達(dá)式說(shuō)明
Cron-Expressions 用于配置 CronTrigger的實(shí)例。Cron Expressions 是由七個(gè)子表達(dá)式組成的字符串,用于描述日程表的各個(gè)細(xì)節(jié)。這些子表達(dá)式用空格分隔,并表示:
Seconds
Minutes
Hours
Day-of-Month
Month
Day-of-Week
Year (可選字段,可以不寫)
例:完整的Cron-Expressions的例子是字符串“0 0 12?* WED” - 這意味著“每個(gè)星期三下午12:00”。
單個(gè)子表達(dá)式可以包含范圍和 / 或列表。例如,可以用“MON-FRI”,“MON,WED,F(xiàn)RI”或甚至“MON-WED,SAT”代替前一個(gè)(例如“WED”)示例中的星期幾字段。
通配符(" "字符)可用于說(shuō)明該字段的“每個(gè)”可能的值。因此,前一個(gè)例子的“月”字段中的“”字符僅僅是“每個(gè)月”。因此,“星期幾”字段中的“*”顯然意味著“每周的每一天”。
表達(dá)式的有效值所有字段都有一組可以指定的有效值。
這些值應(yīng)該是相當(dāng)明顯的:
秒和分鐘的數(shù)字0到59,數(shù)小時(shí)的值0到23。
日期可以是1-31的任何值,但是您需要注意在給定的月份中有多少天。月份可以指定為0到11之間的值,或者使用字符串JAN,F(xiàn)EB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV和DEC。
星期幾可以指定為1到7(1 =星期日)之間的值,或者使用字符串SUN,MON,TUE,WED,THU,F(xiàn)RI和SAT。
字段 | 允許值 | 允許的特殊字符 |
---|---|---|
秒 | 0-59 | , - * / |
分 | 0-59 | , - * / |
小時(shí) | 0-23 | , - * / |
日期 | 1-31 | , - * ? / L W C |
月份 | 1-12 或者 JAN-DEC | , - * / |
星期 | 1-7 或者 SUN-SAT | , - * ? / L C # |
年(可選) 留空 | 1970-2099 | , - * / |
"," 字符
表示的是一種 “或”的關(guān)系。例如 小時(shí)的位置上面為: "14,18" 就是表示在 14點(diǎn)或者18點(diǎn)觸發(fā)。
"-" 字符
表示的是 “至”的關(guān)系,就是從什么開始到什么結(jié)束。
"*" 字符
表示的是“每”的關(guān)系,就是說(shuō)類似“每分鐘”這樣子。
"?"字符
"?" 字符是允許的日期(day-of-month)和星期幾(day-of-week)字段。用于指定“無(wú)特定值”。當(dāng)需要在兩個(gè)字段中的一個(gè)字段中指定某個(gè)字符而不是另一個(gè)字段時(shí),這很有用。請(qǐng)參閱下面的示例(和CronTrigger JavaDoc)以進(jìn)行說(shuō)明。
"/"
"/" 字符可用于指定值的增量。例如,如果在“分鐘”字段中輸入“0/15”,則表示“每隔15分鐘,從零開始”。
如果在“分鐘”字段中使用“3/20”,則意味著“每隔20分鐘,從三分鐘開始” - 換句話說(shuō),它與“分鐘”中的“3,23,43”相同意思。請(qǐng)注意“ / 35”的細(xì)微之處并不代表“每35分鐘” - 這意味著“每隔35分鐘,從零開始” - 或者換句話說(shuō),與指定“0,35”相同。
"L"
"L" 字符允許用于日期( day-of-month )和星期幾(day-of-week)字段。
這個(gè)字符對(duì)于 “l(fā)ast” 來(lái)說(shuō)是短暫的,但是在這兩個(gè)領(lǐng)域的每一個(gè)領(lǐng)域都有不同的含義。
例如:
"日期"字段(day-of-month)中的“L”表示“月的最后一天” - 1月31日,非閏年2月28日。
星期幾(day-of-week)字段,它只是意味著“7”或“SAT”。但是如果在星期幾的字段中再次使用這個(gè)值,就意味著“最后一個(gè)月的xxx日”,例如“6L”或“FRIL”都意味著“月的最后一個(gè)星期五”。您還可以指定從該月最后一天的偏移量,例如“L-3”,這意味著日歷月份的第三個(gè)到最后一天。
當(dāng)使用"L"選項(xiàng)時(shí),重要的是不要指定列表或值的范圍,因?yàn)槟鷷?huì)得到混亂/意外的結(jié)果。
"W"
"W" 用于指定最近給定日期的工作日(星期一至星期五)。例如,如果要將“15W”指定為月日期字段的值,則意思是:“最近的平日到當(dāng)月15日”。
"#"
"#"用于指定本月的“第n個(gè)”XXX工作日。例如,“星期幾”字段中的“6#3”或“FRI#3”的值表示“本月的第三個(gè)星期五”。
Cron Expressions示例每天上午10:15
0 15 10 ? * * // 或者 0 15 10 * * ? // 或者 0 15 10 * * ? *
每天中午12點(diǎn)觸發(fā)
0 0 12 * * ?
每天的14點(diǎn)整至14點(diǎn)59份55秒,以及每天的18點(diǎn)整至18點(diǎn)59份55秒,每五秒鐘執(zhí)行一次
0/5 * 14,18 * * ?
每5分鐘就會(huì)觸發(fā)一次
0 0/5 * * *?
每5分鐘觸發(fā)一次,分鐘后10秒(即上午10時(shí)10分,上午10:05:10等)
10 0/5 * * *?
在每個(gè)星期三和星期五的10:30,11:30,12:30和13:30創(chuàng)建觸發(fā)器的表達(dá)式
0 30 10-13?* WED,FRI
每個(gè)月5日和20日上午8點(diǎn)至10點(diǎn)之間每半小時(shí)觸發(fā)一次。請(qǐng)注意,觸發(fā)器將不會(huì)在上午10點(diǎn)開始,僅在8:00,8:30,9:00和9:30
0 0/30 8-9 5,20 *?
請(qǐng)注意,一些調(diào)度要求太復(fù)雜,無(wú)法用單一觸發(fā)表示 - 例如“每上午9:00至10:00之間每5分鐘,下午1:00至晚上10點(diǎn)之間每20分鐘”一次。在這種情況下的解決方案是簡(jiǎn)單地創(chuàng)建兩個(gè)觸發(fā)器,并注冊(cè)它們來(lái)運(yùn)行相同的作業(yè)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/71206.html
摘要:觸發(fā)器也可以給予名稱和放置在組中,以方便地將它們調(diào)度內(nèi)組織。作業(yè)可以被添加到所述調(diào)度器一次,而是具有多個(gè)觸發(fā)器注冊(cè)。調(diào)度類鏈接工作和觸發(fā)器到一起,并執(zhí)行它。 簡(jiǎn)介 Quartz是一個(gè)開源的作業(yè)調(diào)度框架,可以讓計(jì)劃的程序任務(wù)一個(gè)預(yù)定義的日期和時(shí)間運(yùn)行。Quartz可以用來(lái)創(chuàng)建簡(jiǎn)單或復(fù)雜的日程安排執(zhí)行幾十,幾百,甚至是十萬(wàn)的作業(yè)數(shù)。官方鏈接,戳這里 Quartz是什么? 作業(yè)調(diào)度庫(kù) Qua...
摘要:是一個(gè)任務(wù)日程管理系統(tǒng),一個(gè)在預(yù)先確定被納入日程的時(shí)間到達(dá)時(shí),負(fù)責(zé)執(zhí)行或者通知其他軟件組件的系統(tǒng)。核心接口核心調(diào)度器任務(wù)任務(wù)描述觸發(fā)器和是同時(shí)相互依賴存在的,和觸發(fā)器一起注冊(cè)到核心調(diào)度器。 一、Quartz簡(jiǎn)介 1. Quartz Quartz是OpenSymphony開源組織在Job scheduling領(lǐng)域又一個(gè)開源項(xiàng)目,它可以與J2EE與J2SE應(yīng)用程序相結(jié)合也可以單獨(dú)使用。Q...
摘要:多作業(yè)例子在這個(gè)例子中,我們將介紹如何通過(guò)多個(gè)作業(yè)。在調(diào)度框架中,每個(gè)作業(yè)將被連接到一個(gè)唯一的觸發(fā),并且由調(diào)度器運(yùn)行它。備注說(shuō)明在中,一個(gè)觸發(fā)器觸發(fā)多個(gè)作業(yè)是不可以的。第一步創(chuàng)建個(gè)作業(yè),,和。 多作業(yè)例子 在這個(gè)例子中,我們將介紹如何通過(guò)Quartz API 多個(gè)作業(yè)。在Quartz調(diào)度框架中,每個(gè)作業(yè)將被連接到一個(gè)唯一的觸發(fā),并且由調(diào)度器運(yùn)行它。 備注說(shuō)明:在 Quartz 中,一個(gè)...
摘要:分類中共包含有種觸發(fā)器。建立一個(gè)觸發(fā)器,每隔一分鐘,每天上午點(diǎn)至下午點(diǎn)之間建立一個(gè)觸發(fā)器,將在每天上午執(zhí)行第一種實(shí)現(xiàn)方式第二種實(shí)現(xiàn)方式建立一個(gè)觸發(fā)器,將在星期三上午在系統(tǒng)默認(rèn)值之外執(zhí)行第一種方式第二種方式 Trigger分類 Quartz中共包含有4種觸發(fā)器。 常用的是: SimpleTrigger 和 CronTrigger。不常用的是:CalendarIntervalTrigger...
摘要:重復(fù)任務(wù)循環(huán)任務(wù),當(dāng)在不傳遞重復(fù)執(zhí)行次數(shù)時(shí),不進(jìn)行重復(fù)執(zhí)行,僅僅執(zhí)行一次,如下所示參數(shù)恒宇少年每次循環(huán)的間隔時(shí)間,單位毫秒循環(huán)次數(shù)開始時(shí)間,秒后執(zhí)行任務(wù)類任務(wù)由類進(jìn)行構(gòu)建。 ApiBoot Quartz ApiBoot內(nèi)部集成了Quartz,提供了數(shù)據(jù)庫(kù)方式、內(nèi)存方式的進(jìn)行任務(wù)的存儲(chǔ),其中數(shù)據(jù)庫(kù)方式提供了分布式集群任務(wù)調(diào)度,任務(wù)自動(dòng)平滑切換執(zhí)行節(jié)點(diǎn)。 引用ApiBoot Quartz ...
閱讀 786·2021-08-17 10:11
閱讀 1655·2019-08-30 11:15
閱讀 1090·2019-08-26 13:54
閱讀 3556·2019-08-26 11:47
閱讀 1291·2019-08-26 10:20
閱讀 2895·2019-08-23 18:35
閱讀 1265·2019-08-23 17:52
閱讀 1352·2019-08-23 16:19