Quartz任務(wù)調(diào)度器

Quartz任務(wù)調(diào)度器

與spring的整合

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop.xsd
        ">  
    
    <!-- 定義一個(gè)任務(wù)類 -->
    <bean id="mailJobBean" class="cn.itcast.erp.job.MailJob">
        <property name="contractService" ref="contractService"></property>
    </bean>
    <!-- 任務(wù)類描述 -->
    <bean id="mailJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="mailJobBean"></property>
        <property name="targetMethod" value="send"></property>
    </bean>
    <!-- 觸發(fā)器  -->
    <bean id="mailTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="mailJobDetail"></property>
        <!-- 表達(dá)式订讼,每天的8:30:00 執(zhí)行 -->
        <property name="cronExpression" value="0 30 8 * * ?"></property>
    </bean>
    <!-- 總管理容器 -->
    <bean id="startQuartz" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
        <property name="triggers">
            <list>
                <ref bean="mailTrigger"/>
            </list>
        </property>
    </bean>
</beans>

核心概念

1.scheduler是一個(gè)計(jì)劃調(diào)度器容器蝌借,容器里面可以盛放眾多的JobDetail和trigger,當(dāng)容器啟動(dòng)后毅贮,里面的每個(gè)JobDetail都會(huì)根據(jù)trigger按部就班自動(dòng)去執(zhí)行

2.JobDetail是一個(gè)可執(zhí)行的工作惜犀,它本身可能是有狀態(tài)的

3.Trigger代表一個(gè)調(diào)度參數(shù)的配置,什么時(shí)候去調(diào)

4.當(dāng)JobDetail和Trigger在scheduler容器上注冊(cè)后马昨,形成了裝配好的作業(yè)(JobDetail和Trigger所組成的一對(duì)兒)竞帽,就可以伴隨容器啟動(dòng)而調(diào)度執(zhí)行了

5.scheduler是個(gè)容器,容器中有一個(gè)線程池鸿捧,用來并行調(diào)度執(zhí)行每個(gè)作業(yè)屹篓,這樣可以提高容器效率。

Quartz Cron 表達(dá)式

* * * ? * * 
表達(dá)會(huì)每秒鐘(每分種的匙奴、每小時(shí)的堆巧、每天的)激發(fā)一個(gè)部署的 job

星號(hào)

*  
使用星號(hào)(*) 指示著你想在這個(gè)域上包含所有合法的值。例如饥脑,在月份域上使用星號(hào)意味著每個(gè)月都會(huì)觸發(fā)這個(gè) trigger。

表達(dá)式樣例: 0 * 17 * * ? 
意義:每天從下午5點(diǎn)到下午5:59中的每分鐘激發(fā)一次 trigger懦冰。它停在下午 5:59 是因?yàn)橹?17 在小時(shí)域上灶轰,在下午 6 點(diǎn)時(shí),小時(shí)變?yōu)?18 了刷钢,也就不再理會(huì)這個(gè) trigger笋颤,直到下一天的下午5點(diǎn)。 

問好

? 號(hào)只能用在日和周域上,但是不能在這兩個(gè)域上同時(shí)使用伴澄。你可以認(rèn)為 ? 字符是 "我并不關(guān)心在該域上是什么值赋除。" 這不同于星號(hào),星號(hào)是指示著該域上的每一個(gè)值非凌。? 是說不為該域指定值举农。

只要記住,假如你為這兩域的其中一個(gè)指定了值敞嗡,那就必須在另一個(gè)字值上放一個(gè) ?

0 10,44 14 ? 3 WEB 
意義:在三月中的每個(gè)星期三的下午 2:10 和 下午 2:44 被觸發(fā)

逗號(hào)

逗號(hào) (,) 是用來在給某個(gè)域上指定一個(gè)值列表的颁糟。例如,使用值 0,15,30,45 在秒域上意味著每15秒觸發(fā)一個(gè) trigger喉悴。

0 0,15,30,45 * * * ? 
意義:每刻鐘觸發(fā)一次 trigger棱貌。 

斜杠

斜杠 (/) 是用于時(shí)間表的遞增的。我們剛剛用了逗號(hào)來表示每15分鐘的遞增箕肃,但是我們也能寫成這樣 0/15

0/15 0/30 * * * ? 
在整點(diǎn)和半點(diǎn)時(shí)每15秒觸發(fā) trigger

中劃線

中劃線 (-) 用于指定一個(gè)范圍婚脱。例如,在小時(shí)域上的 3-8 意味著 "3,4,5,6,7 和 8 點(diǎn)勺像。"  域的值不允許回卷障贸,所以像 50-10 這樣的值是不允許的

0 45 3-8 ? * * 
在上午的3點(diǎn)至上午的8點(diǎn)的45分時(shí)觸發(fā) trigger

L 字母

L 說明了某域上允許的最后一個(gè)值。它僅被日和周域支持咏删。當(dāng)用在日域上惹想,表示的是在月域上指定的月份的最后一天

表達(dá)式 0 0 8 L * ? 意義是在每個(gè)月最后一天的上午 8:00 觸發(fā) trigger。在月域上的 * 說明是 "每個(gè)月"

當(dāng) L 字母用于周域上督函,指示著周的最后一天嘀粱,就是星期六 (或者數(shù)字7)。所以如果你需要在每個(gè)月的最后一個(gè)星期六下午的 11:59 觸發(fā) trigger辰狡,你可以用這樣的表達(dá)式 0 59 23 ? * L

當(dāng)使用于周域上锋叨,你可以用一個(gè)數(shù)字與 L 連起來表示月份的最后一個(gè)星期 X。例如宛篇,表達(dá)式 0 0 12 ? * 2L 說的是在每個(gè)月的最后一個(gè)星期一觸發(fā) trigger

井號(hào)

# 字符僅能用于周域中娃磺。它用于指定月份中的第幾周的哪一天。

例如叫倍,如果你指定周域的值為 6#3偷卧,它意思是某月的第三個(gè)周五 (6=星期五,#3意味著月份中的第三周)吆倦。

例如听诸,2#1 意思是某月的第一個(gè)星期一 (2=星期一,#1意味著月份中的第一周)蚕泽。注意晌梨,假如你指定 #5,然而月份中沒有第 5 周,那么該月不會(huì)觸發(fā)仔蝌。

示例

"0 0 12 * *?" 每天中午12點(diǎn)觸發(fā)

"0 15 10 ? * *" 每天上午10:15觸發(fā)

"0 15 10 * *?" 每天上午10:15觸發(fā)

"0 15 10 * * ?*" 每天上午10:15觸發(fā)

"0 15 10 * * ?2005" 2005年的每天上午10:15觸發(fā)

"0 * 14 * *?" 在每天下午2點(diǎn)到下午2:59期間的每1分鐘觸發(fā)

"0 0/5 14 * *?" 在每天下午2點(diǎn)到下午2:55期間的每5分鐘觸發(fā)

"0 0/5 14,18 ** ?" 在每天下午2點(diǎn)到2:55期間和下午6點(diǎn)到6:55期間的每5分鐘觸發(fā)

"0 0-5 14 * *?" 在每天下午2點(diǎn)到下午2:05期間的每1分鐘觸發(fā)

"0 10,44 14 ? 3WED" 每年三月的星期三的下午2:10和2:44觸發(fā)

"0 15 10 ? *MON-FRI" 周一至周五的上午10:15觸發(fā)

"0 15 10 15 *?" 每月15日上午10:15觸發(fā)

"0 15 10 L *?" 每月最后一日的上午10:15觸發(fā)

"0 15 10 ? *6L" 每月的最后一個(gè)星期五上午10:15觸發(fā)

"0 15 10 ? * 6L2002-2005" 2002年至2005年的每月的最后一個(gè)星期五上午10:15觸發(fā)

"0 15 10 ? *6#3" 每月的第三個(gè)星期五上午10:15觸發(fā)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末泛领,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子敛惊,更是在濱河造成了極大的恐慌渊鞋,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豆混,死亡現(xiàn)場(chǎng)離奇詭異篓像,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)皿伺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門员辩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鸵鸥,你說我怎么就攤上這事奠滑。” “怎么了妒穴?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵宋税,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我讼油,道長(zhǎng)杰赛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任矮台,我火速辦了婚禮乏屯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瘦赫。我一直安慰自己辰晕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布确虱。 她就那樣靜靜地躺著含友,像睡著了一般。 火紅的嫁衣襯著肌膚如雪校辩。 梳的紋絲不亂的頭發(fā)上窘问,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音宜咒,去河邊找鬼惠赫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛荧呐,可吹牛的內(nèi)容都是我干的汉形。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼倍阐,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼概疆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起峰搪,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤岔冀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后概耻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體使套,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年鞠柄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了侦高。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡厌杜,死狀恐怖奉呛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情夯尽,我是刑警寧澤瞧壮,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站匙握,受9級(jí)特大地震影響咆槽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜圈纺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一秦忿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赠堵,春花似錦小渊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至揍愁,卻和暖如春呐萨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背莽囤。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工谬擦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人朽缎。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓惨远,卻偏偏與公主長(zhǎng)得像谜悟,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子北秽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容