Web應用與Quartz的整合研究
隨著信息技術的快速發(fā)展計算機軟件在各行各業(yè)中都扮演者相當重要的角色發(fā)揮著促進企業(yè)快速發(fā)展的重要作用。在各行各業(yè)的管理系統(tǒng)中,都可能會存在著系統(tǒng)數(shù)據(jù)定時備份,定時處理相對的業(yè)務功能、定時發(fā)送郵件或是在設定的特定時間間隔內自動執(zhí)行某個系統(tǒng)特定功能的調度任務的需求。使用定時任務調度框架Quartz就能夠的幫助企業(yè)快速高效的完成這種常規(guī)的或是復雜的調度作業(yè)的需求。
1 Quartz框架介紹
Quartz框架是一個具有強大的能夠靈活配置調度規(guī)則或是調度時間的的免費開源的一個任務調度框架。使用Quartz框架可以為企業(yè)信息管理系統(tǒng)的定時調度任務進行簡單快捷靈活的配置調度機制,實現(xiàn)企業(yè)常規(guī)和非常規(guī)的復雜的調度功能。開發(fā)人員可以根據(jù)業(yè)務的具體需求設置調度的時間點或是時間間隔,來進行具體的任務調度。Quartz框架能夠與Spring很好的集成提供強大的可靈活配置的調度功能并應用到J2EE web應用的開發(fā)中,在企業(yè)應用調度開發(fā)中占有極其重要的地位,是目前使用最廣泛的任務調度框架。
任務調度器(scheduler)、觸發(fā)器(trigger)和任務(job)是任務調度框架Quartz的最重要的三大核心組件。其中調度任務的核心管理者是任務調度器(scheduler),調度任務的操作者是觸發(fā)器(trigger),調度任務(job)是系統(tǒng)中相應的功能模塊。開發(fā)人員可以根據(jù)具體的業(yè)務調度需求配置任務和觸發(fā)器的監(jiān)聽規(guī)則,進行任務調度。
調度器(Scheduler)是Quartz 框架最主要的核心模塊它對Quartz的應用運行的環(huán)境起到管理的作用,Quartz框架主要的API也是調度器(Scheduler)。對于Quartz開發(fā)人員來說,Scheduler是Quartz調度框架與開發(fā)人員發(fā)生交互的中間橋梁,大多數(shù)的交互過程都是以Scheduler為基礎進行的。Scheduler通過與框架內的各個JobDetail和trigger結合來進行具體的調度工作的,而不是獨立的完成具體的調度任務。JobDetial和trigger只需要在Scheduler上裝配注冊好,調度作業(yè)就會伴隨著容器的啟動自動執(zhí)行。一個完整的Quartz調度任務,必須包含觸發(fā)器(trigger),調度器(Scheduler)和任務(job)這三個最為重要的核心要素;觸發(fā)器就是一個任務的驅動器,是負責對調度作業(yè)進行定時驅動的否則作業(yè)將無法正常執(zhí)行。一個調度任務可以與多個觸發(fā)器相對應,但是一個觸發(fā)器只能對應一個任務對一個任務進行驅動。Quartz作為一個優(yōu)秀的開源調度框架能夠與Spring集成實現(xiàn)強大的調度作業(yè)而且對運行環(huán)境也沒有依賴,Quartz還提供了強大的集群以及分布式能力,其強大的調度機制支持多樣化的調度方法。
2 JDK Timer介紹
Timer為JDK自帶的任務調度工具類。結構簡單易用,功能也比較有限,而且容易出現(xiàn)誤差。Timer和TimerTask是使用Timer實現(xiàn)任務調度的兩個核心類。開發(fā)人員使用Timer實現(xiàn)任務調度的功能必須創(chuàng)建一個繼承TimerTask的子類,而且重寫run()方法,然后Timer再采用單線程的方式去執(zhí)行調度任務。
Timer最大的優(yōu)點就是簡單易用,但是Timer采用的是單線程的執(zhí)行方式同一時間只能有一個任務在執(zhí)行,同一時間沒有辦法執(zhí)行多個任務。當遇到更多更復雜的調度需求時,Timer難以滿足需求的變化。
3 ScheduledExecutor介紹
ScheduledExecutor是在Timer的基礎上擴展的一個任務調度框架。ScheduledExecutor中的每一個調度任務都會由線程池中對應的一個線程去執(zhí)行任務。ScheduledExecutor與Timer比較ScheduledExecutor中執(zhí)行的任務是可以并非執(zhí)行的,且任務的執(zhí)行之間是沒有影響的。ScheduledExecutor是一個比Timer更為通用的一個任務調度的通用品,它允許同時存在多個服務線程,且只需要實現(xiàn)Runnable接口,不需要繼承TimeTask。但是ScheduledExecutor跟Timer一樣都不能勝任更加復雜的調度需求,只能供基于開始時間與重復間隔的任務調度。
Timer、ScheduledExecutor,跟Quartz比有一定的差距。相對于其他兩個調度工具而已Quartz具有更加強大且靈活的配置規(guī)則,能夠快捷的配置實現(xiàn)復雜的調度需求。如果你只需要特別簡單的任務調度,那么Timer就可以滿足需求。如果你的調度需求比較復雜,使用Quartz要比Timer、ScheduledExecutor簡單。
4 Quartz整合Web的實現(xiàn)過程
整個整合過程主要可分為三步;第一步配置web.xml文件, web.xml文件在整個web應用中一個載體的角色,用來調度配置應用信息。第二步配置quartz.properties主要完成一些調度參數(shù)的設置。第三不編寫調度任務的實現(xiàn)類,在實現(xiàn)類中實現(xiàn)業(yè)務的調度邏輯。以下就是整合過程的詳細過程。
4.1 web.xml中配置Spring
配置spring、struts2用來初始化配置信息。
4.2配置quartz.properties
開發(fā)人員根據(jù)具體業(yè)務的調度需求在quartz.properties這個配置文件中配置自己業(yè)務需求的一些特定的參數(shù),如相應的時間間隔或是時間點這類的調度信息。
Spring應用啟動后就會按照配置好的信息啟動調度任務,當然也可以單獨整合集成quartz,并不一定要使用Spring。
4.3 編寫目標類
目標類是整個調度任務的最關鍵的類,在這類里面開發(fā)人員實現(xiàn)自己的調度邏輯,這個類必須繼承QuartzJobBean,在work方法里面實現(xiàn)調度邏輯。
本文介紹了JDK Timer、ScheduledExecutor、Quartz框架的功能、特點以及這三個工具的優(yōu)缺點,以及如何將Quartz與Spring結合應用到Web開發(fā)中。建立了一個可以滿足企業(yè)常規(guī)調度需求的簡單可用的調度系統(tǒng),而且具有良好的擴展性與靈活性。
- 長期停產(chǎn)藥品恢復生產(chǎn)質量風險防控探究
- 湘西苗族鼓舞的藝術價值及其現(xiàn)代創(chuàng)新發(fā)展
- 國標舞藝術表演舞創(chuàng)作實踐探究
- 始于孔雀同義孔雀 ——楊麗萍三次以孔雀名義的起舞
- 數(shù)字化時代嶺南文化融入高職學前教育專業(yè)舞蹈教學的路徑探索
- 遼寧紅色文化融入高職學前教育專業(yè)舞蹈課程研究
- 系統(tǒng)科學理論視域下舞蹈藝術的協(xié)同創(chuàng)新研究
- 不同體能訓練模式對青少年網(wǎng)球運動員競技表現(xiàn)的對比研究 ——以爆發(fā)力與柔韌性訓練為例
- 第33屆巴黎奧運會網(wǎng)球女單決賽發(fā)球技戰(zhàn)術分析
- 現(xiàn)代背景下初中體育網(wǎng)球教學的創(chuàng)新路徑探究
- 別被這個老掉牙的報紙理論版投稿郵箱誤導了!最新核實91個報紙理論版投稿郵箱通道,一次集齊
- 喜報!《中國博物館》入選CSSCI擴展版來源期刊(最新CSSCI南大核心期刊目錄2025-2026版)!新入選!
- 2025年中科院分區(qū)表已公布!Scientific Reports降至三區(qū)
- 國內核心期刊分級情況概覽及說明!本篇適用人群:需要發(fā)南核、北核、CSCD、科核、AMI、SCD、RCCSE期刊的學者
- CSSCI官方早就公布了最新南核目錄,有心的人已經(jīng)拿到并且投入使用!附南核目錄新增期刊!
- 北大核心期刊目錄換屆,我們應該熟知的10個知識點。
- 注意,最新期刊論文格式標準已發(fā)布,論文寫作規(guī)則發(fā)生重大變化!文字版GB/T 7713.2—2022 學術論文編寫規(guī)則
- 盤點那些評職稱超管用的資源,1,3和5已經(jīng)“絕種”了
- 職稱話題| 為什么黨校更認可省市級黨報?是否有什么說據(jù)?還有哪些機構認可黨報?
- 《農(nóng)業(yè)經(jīng)濟》論文投稿解析,難度指數(shù)四顆星,附好發(fā)選題!

0373-5939925
2851259250@qq.com

