優(yōu)勝從選擇開始,我們是您最好的選擇!—— 中州期刊聯(lián)盟(新鄉(xiāng)市博翰文化傳媒有限公司)
0373-5939925
2851259250@qq.com
我要檢測 我要投稿 合法期刊查詢

Web應(yīng)用與Quartz的整合研究

作者:劉光明朱肖穎來源:《企業(yè)科技與發(fā)展》日期:2018-07-07人氣:1821

隨著信息技術(shù)的快速發(fā)展計算機軟件在各行各業(yè)中都扮演者相當(dāng)重要的角色發(fā)揮著促進企業(yè)快速發(fā)展的重要作用。在各行各業(yè)的管理系統(tǒng)中,都可能會存在著系統(tǒng)數(shù)據(jù)定時備份,定時處理相對的業(yè)務(wù)功能、定時發(fā)送郵件或是在設(shè)定的特定時間間隔內(nèi)自動執(zhí)行某個系統(tǒng)特定功能的調(diào)度任務(wù)的需求。使用定時任務(wù)調(diào)度框架Quartz就能夠的幫助企業(yè)快速高效的完成這種常規(guī)的或是復(fù)雜的調(diào)度作業(yè)的需求。

1 Quartz框架介紹

Quartz框架是一個具有強大的能夠靈活配置調(diào)度規(guī)則或是調(diào)度時間的的免費開源的一個任務(wù)調(diào)度框架。使用Quartz框架可以為企業(yè)信息管理系統(tǒng)的定時調(diào)度任務(wù)進行簡單快捷靈活的配置調(diào)度機制,實現(xiàn)企業(yè)常規(guī)和非常規(guī)的復(fù)雜的調(diào)度功能。開發(fā)人員可以根據(jù)業(yè)務(wù)的具體需求設(shè)置調(diào)度的時間點或是時間間隔,來進行具體的任務(wù)調(diào)度。Quartz框架能夠與Spring很好的集成提供強大的可靈活配置的調(diào)度功能并應(yīng)用到J2EE web應(yīng)用的開發(fā)中,在企業(yè)應(yīng)用調(diào)度開發(fā)中占有極其重要的地位,是目前使用最廣泛的任務(wù)調(diào)度框架。

任務(wù)調(diào)度器(scheduler)、觸發(fā)器(trigger)和任務(wù)(job)是任務(wù)調(diào)度框架Quartz的最重要的三大核心組件。其中調(diào)度任務(wù)的核心管理者是任務(wù)調(diào)度器(scheduler),調(diào)度任務(wù)的操作者是觸發(fā)器(trigger),調(diào)度任務(wù)(job)是系統(tǒng)中相應(yīng)的功能模塊。開發(fā)人員可以根據(jù)具體的業(yè)務(wù)調(diào)度需求配置任務(wù)和觸發(fā)器的監(jiān)聽規(guī)則,進行任務(wù)調(diào)度。

調(diào)度器(Scheduler)是Quartz 框架最主要的核心模塊它對Quartz的應(yīng)用運行的環(huán)境起到管理的作用,Quartz框架主要的API也是調(diào)度器(Scheduler)。對于Quartz開發(fā)人員來說,Scheduler是Quartz調(diào)度框架與開發(fā)人員發(fā)生交互的中間橋梁,大多數(shù)的交互過程都是以Scheduler為基礎(chǔ)進行的。Scheduler通過與框架內(nèi)的各個JobDetail和trigger結(jié)合來進行具體的調(diào)度工作的,而不是獨立的完成具體的調(diào)度任務(wù)。JobDetial和trigger只需要在Scheduler上裝配注冊好,調(diào)度作業(yè)就會伴隨著容器的啟動自動執(zhí)行。一個完整的Quartz調(diào)度任務(wù),必須包含觸發(fā)器(trigger),調(diào)度器(Scheduler)和任務(wù)(job)這三個最為重要的核心要素;觸發(fā)器就是一個任務(wù)的驅(qū)動器,是負責(zé)對調(diào)度作業(yè)進行定時驅(qū)動的否則作業(yè)將無法正常執(zhí)行。一個調(diào)度任務(wù)可以與多個觸發(fā)器相對應(yīng),但是一個觸發(fā)器只能對應(yīng)一個任務(wù)對一個任務(wù)進行驅(qū)動。Quartz作為一個優(yōu)秀的開源調(diào)度框架能夠與Spring集成實現(xiàn)強大的調(diào)度作業(yè)而且對運行環(huán)境也沒有依賴,Quartz還提供了強大的集群以及分布式能力,其強大的調(diào)度機制支持多樣化的調(diào)度方法。

2 JDK Timer介紹

Timer為JDK自帶的任務(wù)調(diào)度工具類。結(jié)構(gòu)簡單易用,功能也比較有限,而且容易出現(xiàn)誤差。Timer和TimerTask是使用Timer實現(xiàn)任務(wù)調(diào)度的兩個核心類。開發(fā)人員使用Timer實現(xiàn)任務(wù)調(diào)度的功能必須創(chuàng)建一個繼承TimerTask的子類,而且重寫run()方法,然后Timer再采用單線程的方式去執(zhí)行調(diào)度任務(wù)。

Timer最大的優(yōu)點就是簡單易用,但是Timer采用的是單線程的執(zhí)行方式同一時間只能有一個任務(wù)在執(zhí)行,同一時間沒有辦法執(zhí)行多個任務(wù)。當(dāng)遇到更多更復(fù)雜的調(diào)度需求時,Timer難以滿足需求的變化。

3  ScheduledExecutor介紹

ScheduledExecutor是在Timer的基礎(chǔ)上擴展的一個任務(wù)調(diào)度框架。ScheduledExecutor中的每一個調(diào)度任務(wù)都會由線程池中對應(yīng)的一個線程去執(zhí)行任務(wù)。ScheduledExecutor與Timer比較ScheduledExecutor中執(zhí)行的任務(wù)是可以并非執(zhí)行的,且任務(wù)的執(zhí)行之間是沒有影響的。ScheduledExecutor是一個比Timer更為通用的一個任務(wù)調(diào)度的通用品,它允許同時存在多個服務(wù)線程,且只需要實現(xiàn)Runnable接口,不需要繼承TimeTask。但是ScheduledExecutor跟Timer一樣都不能勝任更加復(fù)雜的調(diào)度需求,只能供基于開始時間與重復(fù)間隔的任務(wù)調(diào)度。

Timer、ScheduledExecutor,跟Quartz比有一定的差距。相對于其他兩個調(diào)度工具而已Quartz具有更加強大且靈活的配置規(guī)則,能夠快捷的配置實現(xiàn)復(fù)雜的調(diào)度需求。如果你只需要特別簡單的任務(wù)調(diào)度,那么Timer就可以滿足需求。如果你的調(diào)度需求比較復(fù)雜,使用Quartz要比Timer、ScheduledExecutor簡單。

4 Quartz整合Web的實現(xiàn)過程

整個整合過程主要可分為三步;第一步配置web.xml文件, web.xml文件在整個web應(yīng)用中一個載體的角色,用來調(diào)度配置應(yīng)用信息。第二步配置quartz.properties主要完成一些調(diào)度參數(shù)的設(shè)置。第三不編寫調(diào)度任務(wù)的實現(xiàn)類,在實現(xiàn)類中實現(xiàn)業(yè)務(wù)的調(diào)度邏輯。以下就是整合過程的詳細過程。

4.1 web.xml中配置Spring

配置spring、struts2用來初始化配置信息。


4.2配置quartz.properties

開發(fā)人員根據(jù)具體業(yè)務(wù)的調(diào)度需求在quartz.properties這個配置文件中配置自己業(yè)務(wù)需求的一些特定的參數(shù),如相應(yīng)的時間間隔或是時間點這類的調(diào)度信息。

Spring應(yīng)用啟動后就會按照配置好的信息啟動調(diào)度任務(wù),當(dāng)然也可以單獨整合集成quartz,并不一定要使用Spring。

4.3 編寫目標(biāo)類

目標(biāo)類是整個調(diào)度任務(wù)的最關(guān)鍵的類,在這類里面開發(fā)人員實現(xiàn)自己的調(diào)度邏輯,這個類必須繼承QuartzJobBean,在work方法里面實現(xiàn)調(diào)度邏輯。

本文介紹了JDK Timer、ScheduledExecutor、Quartz框架的功能、特點以及這三個工具的優(yōu)缺點,以及如何將Quartz與Spring結(jié)合應(yīng)用到Web開發(fā)中。建立了一個可以滿足企業(yè)常規(guī)調(diào)度需求的簡單可用的調(diào)度系統(tǒng),而且具有良好的擴展性與靈活性。


本文來源:《企業(yè)科技與發(fā)展》:http://m.12-baidu.cn/w/qk/21223.html

網(wǎng)絡(luò)客服QQ: 沈編輯

投訴建議:0373-5939925????投訴建議QQ:

招聘合作:2851259250@qq.com (如您是期刊主編、文章高手,可通過郵件合作)

地址:河南省新鄉(xiāng)市金穗大道東段266號中州期刊聯(lián)盟 ICP備案號:豫ICP備2020036848

【免責(zé)聲明】:中州期刊聯(lián)盟所提供的信息資源如有侵權(quán)、違規(guī),請及時告知。

版權(quán)所有:中州期刊聯(lián)盟(新鄉(xiāng)市博翰文化傳媒有限公司)

關(guān)注”中州期刊聯(lián)盟”公眾號
了解論文寫作全系列課程

核心期刊為何難發(fā)?

論文發(fā)表總嫌貴?

職院單位發(fā)核心?

掃描關(guān)注公眾號

論文發(fā)表不再有疑惑

論文寫作全系列課程

掃碼了解更多

輕松寫核心期刊論文

在線留言