程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java准時調劑器(Quartz)應用實例

java准時調劑器(Quartz)應用實例

編輯:關於JAVA

java准時調劑器(Quartz)應用實例。本站提示廣大學習愛好者:(java准時調劑器(Quartz)應用實例)文章只能為提供參考,不一定能成為您想要的結果。以下是java准時調劑器(Quartz)應用實例正文


1、Quartz准時器履行流程
Quartz須要界說履行義務、觸發器,在義務中指定履行的類對象及對象的辦法,觸發器中界說履行的時光、履行的義務。

2、在WEB情況中的設置裝備擺設


<!--界說義務類 -->
<bean id = "tmpTask" class="com.tmp.task.BcdTask"/>
<!-- 界說挪用對象和挪用對象的辦法, tmpWork為BcdTask中的一個辦法-->
<bean id="tmpJob"
    class=" org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    <property name="targetObject">
        <ref bean = "tmpTask"/>
    </property>
    <property name="targetMethod" value="tmpWork"/>
</bean>
<!--界說觸發器 -->
<bean id="tmpTrigger"
    class=" org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail">
        <ref bean = "tmpJob"/>
    </property>
    <property name=" cronExpression">
        <!-- 第 10秒 隔 5秒履行一次-->
           <value>10/5 * * * * ?</value>
    </property>
</bean>
<!--設置裝備擺設履行的義務,治理觸發器-->
<bean id="triggerManager" autowire="no"
    class=" org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name=" startupDelay" value="60"/>
    <property name="triggers">
            <list>
                <ref bean ="tmpTrigger"/>
            </list>
    </property>
</bean>

假如指定startupDelay,則運用啟動後QuartzScheduler才會啟動。可以指定屬性

lazy-init = “false”撤消延遲啟動,即當運用啟動時立刻履行調劑法式。

3、觸發器Cron表達式
Cron表達式時光字段
Cron表達式的時光字段除許可設置數值外,還可以使用一些特別的字符,供給列表、規模、通配符等功效。

●星號(*):可用在一切字段中,表現對應時光域的每個時辰,例如,*在分鐘字段時,表現“每分鐘”;

●問號(?):該字符只在日期和禮拜字段中應用,它平日指定為“有意義的值”,相當於點位符;

●減號(-):表達一個規模,如在小時字段中應用“10-12”,則表現從10到12點,即10,11,12;

●逗號(,):表達一個列表值,如在禮拜字段中應用“MON,WED,FRI”,則表現禮拜一,禮拜三和禮拜五;

●斜槓(/):x/y表達一個等步長序列,x為肇端值,y為增量步長值。如在分鐘字段中應用0/15,則表現為0,15,30和45秒,而5/15在分鐘字段中表現5,20,35,50,你也能夠應用*/y,它同等於0/y;

●L:該字符只在日期和禮拜字段中應用,代表“Last”的意思,但它在兩個字段中意思分歧。L在日期字段中,表現這個月份的最初一天,如一月的 31號,非閏年二月的28號;假如L用在禮拜中,則表現禮拜六,同等於7。然則,假如L湧現在禮拜字段裡,並且在後面有一個數值X,則表現“這個月的最初 X天”,例如,6L表現該月的最初禮拜五;

●W:該字符只能湧現在日期字段裡,是對前導日期的潤飾,表現離該日期比來的任務日。例如15W表現離該月15號比來的任務日,假如該月15號是星 期六,則婚配14號禮拜五;假如15日是禮拜日,則婚配16號禮拜一;假如15號是禮拜二,那成果就是15號禮拜二。但必需留意聯系關系的婚配日期不克不及夠跨 月,如你指定1W,假如1號是禮拜六,成果婚配的是3號禮拜一,而非上個月最初的那天。W字符串只能指訂單一日期,而不克不及指定日期規模;

●LW組合:在日期字段可以組合應用LW,它的意思是當月的最初一個任務日;

●井號(#):該字符只能在禮拜字段中應用,表現當月某個任務日。如6#3表現當月的第三個禮拜五(6表現禮拜五,#3表現以後的第三個),而4#5表現當月的第五個禮拜三,假定當月沒有第五個禮拜三,疏忽不觸發;

● C:該字符只在日期和禮拜字段中應用,代表“Calendar”的意思。它的意思是籌劃所聯系關系的日期,假如日期沒有被聯系關系,則相當於日歷中一切日期。例如5C在日期字段中就相當於日歷5日今後的第一天。1C在禮拜字段中相當於禮拜往後的第一天。

Cron表達式對特別字符的年夜小寫不敏感,對代表禮拜的縮寫英文年夜小寫也不敏感。

個中每一個元素可所以一個值(如6),一個持續區間(9-12),一個距離時光(8-18/4)(/表現每隔4小時),一個列表(1,3,5),通配符。因為"月份中的日期"和"禮拜中的日期"這兩個元素互斥的,必需要對個中一個設置?.

0 0 10,14,16 * * ? 天天上午10點,下晝2點,4點
0 0/30 9-17 * * ?   朝九晚五任務時光內每半小時
0 0 12 ? * WED 表現每一個禮拜三正午12點
"0 0 12 * * ?" 天天正午12點觸發
"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:10和2: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 2002-2005" 2002年至2005年的每個月的最初一個禮拜五上午10:15觸發
"0 15 10 ? * 6#3" 每個月的第三個禮拜五上午10:15觸發

"0 5 2 1 8 ? *" 每一年的8月1號2:5觸發


有些子表達式能包括一些規模或列表

例如:子表達式(天(禮拜))可認為 “MON-FRI”,“MON,WED,FRI”,“MON-WED,SAT”

“*”字符代表一切能夠的值

是以,“*”在子表達式(月)裡表現每一個月的寄義,“*”在子表達式(天(禮拜))表現禮拜的每天

“/”字符用來指定命值的增量

例如:在子表達式(分鐘)裡的“0/15”表現從第0分鐘開端,每15分鐘

         在子表達式(分鐘)裡的“3/20”表現從第3分鐘開端,每20分鐘(它和“3,23,43”)的寄義一樣


“?”字符僅被用於天(月)和天(禮拜)兩個子表達式,表現不指定值

當2個子表達式個中之一被指定了值今後,為了不抵觸,須要將另外一個子表達式的值設為“?”

“L” 字符僅被用於天(月)和天(禮拜)兩個子表達式,它是單詞“last”的縮寫

然則它在兩個子表達式裡的寄義是分歧的。

在天(月)子表達式中,“L”表現一個月的最初一天

在天(禮拜)自表達式中,“L”表現一個禮拜的最初一天,也就是SAT

假如在“L”前有詳細的內容,它就具有其他的寄義了

例如:“6L”表現這個月的倒數第6天,“FRIL”表現這個月的最一個禮拜五

留意:在應用“L”參數時,不要指定列表或規模,由於這會招致成績

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved