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