quartz定時(shí)任務(wù)應(yīng)用

1.背景介紹

Quartz是一個(gè)作業(yè)調(diào)度庫(kù)押桃,可以與任何其他軟件系統(tǒng)集成,也可以和其他軟件系統(tǒng)一起使用导犹〕“job scheduler”作業(yè)調(diào)度程序是一個(gè)服務(wù)組件,負(fù)責(zé)執(zhí)行(或通知)其他軟件組件預(yù)定(預(yù)定)時(shí)間到達(dá)谎痢。

Quartz非常靈活磕昼,并且包含多個(gè)可以單獨(dú)使用或一起使用的使用范例,以便實(shí)現(xiàn)所需的行為节猿,并使我們能夠以對(duì)項(xiàng)目最為“自然”的方式編寫代碼票从。

Quartz非常輕量級(jí),而且只需要很少的設(shè)置/配置 - 如果您的需求相對(duì)比較基本的話滨嘱,它實(shí)際上可以用于“開箱即用”的峰鄙。

Quartz是容錯(cuò)的,可以在系統(tǒng)重啟之間持續(xù)('記住')你的預(yù)定作業(yè)太雨。


2.知識(shí)剖析

Quartz體系結(jié)構(gòu)

Job: 是一個(gè)接口先馆,只定義一個(gè)方法execute(JobExecutionContext context),在實(shí)現(xiàn)接口的execute方法中編寫所需要定時(shí)執(zhí)行的Job(任務(wù))躺彬, JobExecutionContext類提供了調(diào)度應(yīng)用的一些信息煤墙。

Job運(yùn)行時(shí)的信息保存在JobDataMap實(shí)例中梅惯;

JobDetail: Quartz每次調(diào)度Job時(shí), 都重新創(chuàng)建一個(gè)Job實(shí)例仿野, 所以它不直接接受一個(gè)Job的實(shí)例铣减,相反它接收一個(gè)Job實(shí)現(xiàn)類(JobDetail:描述Job的實(shí)現(xiàn)類及其它相關(guān)的靜態(tài)信息,如Job名字脚作、描述葫哗、關(guān)聯(lián)監(jiān)聽器等信息),

以便運(yùn)行時(shí)通過(guò)newInstance()的反射機(jī)制實(shí)例化Job

Trigger:是一個(gè)類球涛,描述觸發(fā)Job執(zhí)行的時(shí)間觸發(fā)規(guī)則劣针。主要有SimpleTrigger和CronTrigger這兩個(gè)子類。

當(dāng)且僅當(dāng)需調(diào)度一次或者以固定時(shí)間間隔周期執(zhí)行調(diào)度亿扁,SimpleTrigger是最適合的選擇捺典;而CronTrigger則可以通過(guò)Cron表達(dá)式定義出各種復(fù)雜時(shí)間規(guī)則的調(diào)度方案:

Calendar:org.quartz.Calendar和java.util.Calendar不同, 它是一些日歷特定時(shí)間點(diǎn)的集合(可以簡(jiǎn)單地將org.quartz.Calendar看作java.util.Calendar的集合——java.util.Calendar代表一個(gè)日歷時(shí)間點(diǎn)从祝,無(wú)特殊說(shuō)明后面的Calendar即指org.quartz.Calendar)襟己。

一個(gè)Trigger可以和多個(gè)Calendar關(guān)聯(lián), 以便排除或包含某些時(shí)間點(diǎn)

Scheduler:代表一個(gè)Quartz的獨(dú)立運(yùn)行容器牍陌, Trigger和JobDetail可以注冊(cè)到Scheduler中擎浴,擁有各自的組及名稱,組及名稱必須唯一(但可以和Trigger的組和名稱相同毒涧,因?yàn)樗鼈兪遣煌愋偷模┲ぁcheduler定義了多個(gè)接口方法, 允許外部通過(guò)組及名稱訪問(wèn)和控制容器中Trigger和JobDetail契讲。

Scheduler可以將Trigger綁定到某一JobDetail中仿吞, 這樣當(dāng)Trigger觸發(fā)時(shí),對(duì)應(yīng)的Job就被執(zhí)行怀泊。一個(gè)Job可以對(duì)應(yīng)多個(gè)Trigger茫藏, 但一個(gè)Trigger只能對(duì)應(yīng)一個(gè)Job∨恚可以通過(guò)SchedulerFactory創(chuàng)建一個(gè)Scheduler實(shí)例务傲。Scheduler擁有一個(gè)SchedulerContext,它類似于ServletContext枣申,保存著Scheduler上下文信息售葡,Job和Trigger都可以訪問(wèn)SchedulerContext內(nèi)的信息。SchedulerContext內(nèi)部通過(guò)一個(gè)Map以鍵值對(duì)的方式維護(hù)這些上下文數(shù)據(jù)忠藤,SchedulerContext為保存和獲取數(shù)據(jù)提供了多個(gè)put()和getXxx()的方法挟伙。


3.常見問(wèn)題

quartz與公司框架結(jié)合遇到的問(wèn)題

4.解決方案

我們直接看視頻

5.編碼實(shí)戰(zhàn)


6.擴(kuò)展思考

為什么要把quartz與spring結(jié)合起來(lái)


7.參考文獻(xiàn)

http://chuhanzhi.com/?p=45



第一個(gè)問(wèn)題: 普通類調(diào)用spring里面bean的話自身也需要加入spring管理

如果想用@autowired,那么這個(gè)類本身也應(yīng)該是在spring的管理下 的模孩,即你的Util也要標(biāo)注為一個(gè)component(或Service)尖阔,這樣spring才知道要注入依賴贮缅;

如果不標(biāo)注為@Component的話,此時(shí)不能通過(guò)@autowired來(lái)注入依賴介却,只能通過(guò)ApplicationContext來(lái)取得標(biāo)注為Service的類.

第二個(gè)問(wèn)題:@service 和@Compent的區(qū)別...目前區(qū)分兩者的使用場(chǎng)景還不是特別明確,.按照今天出現(xiàn)問(wèn)題來(lái)講,調(diào)用service的類需要加上@Controlle或@Component注解,,不是controller層要加上@component注解

@Service用于標(biāo)注業(yè)務(wù)層組件

@Controller用于標(biāo)注控制層組件(如struts中的action)

@Repository用于標(biāo)注數(shù)據(jù)訪問(wèn)組件谴供,即DAO組件

@Component泛指組件,當(dāng)組件不好歸類的時(shí)候齿坷,我們可以使用這個(gè)注解進(jìn)行標(biāo)注桂肌。

第三個(gè)問(wèn)題:如果在rmi里面反射service方法時(shí)反射client里面的接口. 因?yàn)閟ervice接口無(wú)法實(shí)例化.會(huì)導(dǎo)致方法為空

第四個(gè)問(wèn)題: test測(cè)試類無(wú)法加載多個(gè)xml文件.

第五個(gè)問(wèn)題:通過(guò)反射調(diào)用client實(shí)現(xiàn)service里面的方法時(shí),無(wú)法加載client里面構(gòu)造的serviceBean.最后通過(guò)在一個(gè)反射里面添加第二個(gè)反射任務(wù)(使用applicationContext的getBean方法加載xml文件里面的bean獲取).

第六個(gè)問(wèn)題: 反射中g(shù)etdeclaredmethod與 getmethod區(qū)別

public Method[] getMethods()返回某個(gè)類的所有公用(public)方法包括其繼承類的公用方法,當(dāng)然也包括它所實(shí)現(xiàn)接口的方法永淌。

public Method[] getDeclaredMethods()對(duì)象表示的類或接口聲明的所有方法崎场,包括公共、保護(hù)遂蛀、默認(rèn)(包)訪問(wèn)和私有方法谭跨,但不包括繼承的方法。當(dāng)然也包括它所實(shí)現(xiàn)接口的方法答恶。


PPT



undefined_騰訊視頻

謝謝觀看

今天的分享就到這里啦饺蚊,歡迎大家點(diǎn)贊萍诱、轉(zhuǎn)發(fā)悬嗓、留言、拍磚~

技能樹.IT修真院

“我們相信人人都可以成為一個(gè)工程師裕坊,現(xiàn)在開始包竹,找個(gè)師兄,帶你入門籍凝,掌控自己學(xué)習(xí)的節(jié)奏周瞎,學(xué)習(xí)的路上不再迷茫”饵蒂。

這里是技能樹.IT修真院声诸,成千上萬(wàn)的師兄在這里找到了自己的學(xué)習(xí)路線,學(xué)習(xí)透明化退盯,成長(zhǎng)可見化彼乌,師兄1對(duì)1免費(fèi)指導(dǎo)≡ㄇǎ快來(lái)與我一起學(xué)習(xí)吧~

www.jnshu.com/login/1/14708688

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末慰照,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子琉朽,更是在濱河造成了極大的恐慌毒租,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件箱叁,死亡現(xiàn)場(chǎng)離奇詭異墅垮,居然都是意外死亡惕医,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門算色,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)曹锨,“玉大人,你說(shuō)我怎么就攤上這事剃允∨婕颍” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵斥废,是天一觀的道長(zhǎng)椒楣。 經(jīng)常有香客問(wèn)我,道長(zhǎng)牡肉,這世上最難降的妖魔是什么捧灰? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮统锤,結(jié)果婚禮上毛俏,老公的妹妹穿的比我還像新娘。我一直安慰自己饲窿,他們只是感情好煌寇,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著逾雄,像睡著了一般阀溶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸦泳,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天银锻,我揣著相機(jī)與錄音,去河邊找鬼做鹰。 笑死击纬,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的钾麸。 我是一名探鬼主播更振,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼喂走!你這毒婦竟也來(lái)了殃饿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤芋肠,失蹤者是張志新(化名)和其女友劉穎乎芳,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奈惑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年吭净,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肴甸。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡寂殉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出原在,到底是詐尸還是另有隱情友扰,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布庶柿,位于F島的核電站村怪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏浮庐。R本人自食惡果不足惜甚负,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望审残。 院中可真熱鬧梭域,春花似錦、人聲如沸搅轿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)介时。三九已至没宾,卻和暖如春凌彬,著一層夾襖步出監(jiān)牢的瞬間沸柔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工铲敛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留褐澎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓伐蒋,卻偏偏與公主長(zhǎng)得像工三,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子先鱼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

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