999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于quartz的企業(yè)任務(wù)調(diào)度平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)

2017-05-30 00:14:00胡茂集
科技尚品 2017年2期
關(guān)鍵詞:規(guī)則數(shù)據(jù)庫(kù)企業(yè)

胡茂集

摘 要:本文在闡述quartz解釋、技術(shù)要素和優(yōu)勢(shì)的基礎(chǔ)上,探索在J2EE架構(gòu)下使用quartz技術(shù)實(shí)現(xiàn)企業(yè)任務(wù)調(diào)度平臺(tái)的途徑。

關(guān)鍵詞:quartz;企業(yè)任務(wù)調(diào)度平臺(tái)

1 前言

隨著大數(shù)據(jù)時(shí)代的來(lái)臨以及商業(yè)應(yīng)用地飛速發(fā)展,利用java API實(shí)現(xiàn)的傳統(tǒng)離散的任務(wù)調(diào)度應(yīng)用已無(wú)法滿足企業(yè)在動(dòng)態(tài)定制、工作效率以及統(tǒng)一、集中管控等方面提出的需求。企業(yè)任務(wù)調(diào)度平臺(tái)(Enterprise task scheduling platform,以下稱ETSP)正是在這樣的背景下提出,該平臺(tái)充分利用quartz開源框架功能強(qiáng)大,應(yīng)用靈活,易于集成的特點(diǎn),適應(yīng)企業(yè)任務(wù)多而雜的現(xiàn)狀,將企業(yè)中諸如消息發(fā)送、數(shù)據(jù)備份、挖掘、報(bào)表分析、數(shù)據(jù)采集、同步、遷移、加工等一系列任務(wù)集中管控,并讓用戶可根據(jù)需要定制個(gè)性化任務(wù)調(diào)度,有效監(jiān)管任務(wù)調(diào)度運(yùn)行,降低出錯(cuò)概率,提高運(yùn)行效率,減輕企業(yè)IT人員的開發(fā)與維護(hù)工作。

2 Quartz任務(wù)調(diào)度的基本實(shí)現(xiàn)原理

傳統(tǒng)離散的企業(yè)任務(wù)調(diào)度或使用Java SDK Timer和 TimerTask類,或使用Crontab+SQL來(lái)達(dá)到目的,這類任務(wù)調(diào)度使配置和代碼分散在多處,難以維護(hù)和監(jiān)控,執(zhí)行過(guò)程沒有保證,缺失錯(cuò)誤恢復(fù),在一些步驟復(fù)雜、分散,任務(wù)量大的情況下,很難進(jìn)行擴(kuò)展。這些局限恰恰是Quartz的優(yōu)勢(shì)。

Quartz完全基于Java實(shí)現(xiàn)。它有強(qiáng)大的調(diào)度功能,支持豐富多樣的調(diào)度方法,并具有以下特點(diǎn):具有強(qiáng)大容錯(cuò)及負(fù)載均衡能力,能被集成到任何獨(dú)立的應(yīng)用中,可在servlet容器或應(yīng)用服務(wù)器中實(shí)例化,甚至成為獨(dú)立程序?yàn)榧海怀绦騿T可通過(guò)RMI運(yùn)用Quartz。

Quartz的核心三要素是trigger、job和scheduler,其中scheduler為執(zhí)行調(diào)度的實(shí)際控制器,trigger、job是任務(wù)調(diào)度的元數(shù)據(jù)。trigger用于定義調(diào)度規(guī)則,即按照什么時(shí)間或周期去執(zhí)行任務(wù)。一個(gè)job可被多個(gè)trigger關(guān)聯(lián),但是一個(gè)trigger只能關(guān)聯(lián)一個(gè)job。Scheduler定義了很多接口和方法,它表示一個(gè)Quartz獨(dú)立的運(yùn)行容器,Trigger和JobDetail可以在Scheduler中被注冊(cè),并許可外程序部通過(guò)組及名稱訪問(wèn)、控制容器中Trigger和JobDetail。

Quartz擁有完備的事件和事件監(jiān)聽體系,大部分組件都擁有觸發(fā)后事件、調(diào)度器開始事件、關(guān)閉事件任務(wù)執(zhí)行前事件、任務(wù)執(zhí)行后事件、觸發(fā)器觸發(fā)前事件等等。

3 企業(yè)任務(wù)調(diào)度平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)

3.1 平臺(tái)功能設(shè)計(jì)

根據(jù)Quartz特性,企業(yè)任務(wù)調(diào)度系統(tǒng)包括這些模塊:控制臺(tái)、任務(wù)調(diào)度、工作管理、運(yùn)行規(guī)則管理等,用戶使用企業(yè)任務(wù)調(diào)度平臺(tái)管控所有需要調(diào)度的任務(wù),結(jié)合上文提到的scheduler與job的關(guān)聯(lián)來(lái)理清任務(wù)與工作之間的關(guān)系,其中,一個(gè)任務(wù)包含N個(gè)工作,需要通過(guò)系統(tǒng)界面將N個(gè)工作進(jìn)行工作編排,每個(gè)任務(wù)都基于一條運(yùn)行規(guī)則按照工作編排的順序執(zhí)行。所以,要新建一個(gè)調(diào)度任務(wù),必須經(jīng)過(guò)以下步驟:

首先,在運(yùn)行規(guī)則管理模塊編排運(yùn)行規(guī)則。經(jīng)過(guò)規(guī)則測(cè)試成功之后再生成一條新的運(yùn)行規(guī)則,如用戶確定運(yùn)行規(guī)則為“每1個(gè)月的第10個(gè)工作日,在0時(shí)0分0秒執(zhí)行”,則規(guī)則編排器自動(dòng)生成Quartz cron表達(dá)式“0 0 0 10W 1/1 ?”。用戶可以選擇該運(yùn)行規(guī)則基于普通日歷還是工作日歷生成,如果基于工作日歷生成,則在之后的調(diào)度任務(wù)配置功能里可以設(shè)置遇到企業(yè)非工作日或者假期是否順延。工作日歷的管理功能在工作管理模塊中。

其次,在工作管理模塊新建任務(wù)所需要執(zhí)行的各項(xiàng)工作。每項(xiàng)工作生成一條新的工作項(xiàng)。這些工作項(xiàng)可以是企業(yè)其他系統(tǒng)提供的接口,也可以是一些用于數(shù)據(jù)處理的存儲(chǔ)過(guò)程或者是用于數(shù)據(jù)加工的ETL(Extract-Transform-Load)工具提供的工作流。新建工作項(xiàng)時(shí),需要配置該工作所屬的工作組,工作組的概念是為了更好的管理各項(xiàng)工作,理清該工作屬性,可以按照用途、類別或者系統(tǒng)界限區(qū)分,比如所有涉及存儲(chǔ)過(guò)程的工作項(xiàng)歸為一類、系統(tǒng)接口歸為一類,或者涉及數(shù)據(jù)庫(kù)處理的歸為一類、程序執(zhí)行歸為另一類等。

最后,利用已新建的運(yùn)行規(guī)則及所需工作項(xiàng),可以選擇N個(gè)工作項(xiàng)來(lái)編排一個(gè)調(diào)度任務(wù),并設(shè)置該任務(wù)的出錯(cuò)處理、節(jié)假日處理等事項(xiàng)。

3.2 平臺(tái)實(shí)現(xiàn)

對(duì)于一些復(fù)雜的企業(yè)級(jí)任務(wù)調(diào)度應(yīng)用來(lái)說(shuō),建議在程序的開發(fā)階段將整個(gè)Quartz的源代碼復(fù)制至開發(fā)環(huán)境中。一方面可以通過(guò)修改或擴(kuò)展Quartz一部分類來(lái)實(shí)現(xiàn)某些更為復(fù)雜的、Quartz本身尚不提供的接口功能;另一方面,通過(guò)閱讀源碼,我們可以迅速了解Quartz的實(shí)現(xiàn)原理,更加熟悉接下來(lái)的開發(fā)過(guò)程。下面我們通過(guò)創(chuàng)建數(shù)據(jù)關(guān)系與整合Quartz的方法來(lái)概述平臺(tái)的實(shí)現(xiàn)邏輯。

Quartz依賴于一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDMS)來(lái)持久化存儲(chǔ)。本平臺(tái)使用JDBC來(lái)持久化Scheduler狀態(tài)到數(shù)據(jù)庫(kù)中。為了實(shí)現(xiàn)任務(wù)調(diào)度管控功能,在本平臺(tái)中,首先引入Quartz數(shù)據(jù)庫(kù)結(jié)構(gòu)建立數(shù)據(jù)庫(kù)。

在Quartz中,任務(wù)本身實(shí)際的運(yùn)行時(shí)間和耗費(fèi)在每個(gè)監(jiān)聽器上的時(shí)間都會(huì)直接記入到任務(wù)的執(zhí)行時(shí)間上,使用大量的監(jiān)聽器,如JobListeners、SchedulerListeners或TriggerListeners會(huì)影響Quartz執(zhí)行效率。再者,Quartz在與數(shù)據(jù)庫(kù)交互方面本身實(shí)際上只做很少的處理,差不多所有的時(shí)間都花費(fèi)在數(shù)據(jù)庫(kù)上,因?yàn)榛贘DBC的JobStore的速度很大程度上取決于對(duì)數(shù)據(jù)庫(kù)連接的速度。所以,在本平臺(tái)實(shí)施過(guò)程中,為提高平臺(tái)性能,一是為Quartz表建立索引;二是避免創(chuàng)建大量全局監(jiān)聽器。

接下來(lái),我們需要在項(xiàng)目中整合Quartz,具體做法為:將quartz.properties文件放置到classes目錄下即可。至此,Quartz已經(jīng)完整合到了企業(yè)任務(wù)調(diào)度平臺(tái)項(xiàng)目中,并建立了任務(wù)調(diào)度數(shù)據(jù)庫(kù)。接下來(lái),我們需要利用Quartz框架的重要組件來(lái)實(shí)現(xiàn)任務(wù)調(diào)度功能,這些組件包括Trigger、Scheduler、Job、JobDetail,以及SchedulerContext和JobDataMap等,限于篇幅,我們不再一一累述。Quartz框架的jar包中有名為examples的文件夾,其中有很多個(gè)基礎(chǔ)實(shí)例可供開發(fā)者參照。

4 結(jié)語(yǔ)

企業(yè)的調(diào)度任務(wù)規(guī)模越大、越復(fù)雜、越被頻繁地執(zhí)行,那么能從信息化、自動(dòng)化中獲益也越大。通過(guò)本文對(duì)Quartz特性、企業(yè)任務(wù)調(diào)度平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)的闡述,我們可以看出,更高的資源使用效率、伸縮性,更少的出錯(cuò)幾率使得利用Quartz來(lái)實(shí)現(xiàn)企業(yè)任務(wù)調(diào)度平臺(tái)是不二選擇。

參考文獻(xiàn)

[1]耿勇,薛勝軍.J2EE應(yīng)用中任務(wù)的動(dòng)態(tài)調(diào)度[J].開發(fā)研究與設(shè)計(jì)技術(shù),2007,(6):1589-1674.

[2]王崟,董志勇.基于Quartz的網(wǎng)管系統(tǒng)任務(wù)調(diào)度的實(shí)現(xiàn)[J].電腦開發(fā)與應(yīng)用,2011,24(7):23-24.

(作者單位:同濟(jì)大學(xué)軟件學(xué)院)

猜你喜歡
規(guī)則數(shù)據(jù)庫(kù)企業(yè)
企業(yè)
企業(yè)
企業(yè)
撐竿跳規(guī)則的制定
數(shù)獨(dú)的規(guī)則和演變
敢為人先的企業(yè)——超惠投不動(dòng)產(chǎn)
讓規(guī)則不規(guī)則
Coco薇(2017年11期)2018-01-03 20:59:57
數(shù)據(jù)庫(kù)
TPP反腐敗規(guī)則對(duì)我國(guó)的啟示
數(shù)據(jù)庫(kù)
主站蜘蛛池模板: 亚洲不卡av中文在线| 六月婷婷精品视频在线观看| 亚洲狼网站狼狼鲁亚洲下载| 精品乱码久久久久久久| av一区二区无码在线| igao国产精品| 亚洲精品视频免费| 亚洲无码高清免费视频亚洲| 99久久性生片| 91口爆吞精国产对白第三集 | 亚洲 欧美 中文 AⅤ在线视频| 谁有在线观看日韩亚洲最新视频| 小蝌蚪亚洲精品国产| 精品国产成人国产在线| 国产内射在线观看| 欧美成人怡春院在线激情| 伊人久久精品亚洲午夜| 免费观看成人久久网免费观看| 国产女人18毛片水真多1| 99在线国产| 亚洲无码高清一区| 亚洲福利视频网址| 蜜桃视频一区二区三区| 久久这里只精品国产99热8| 在线观看视频99| 色婷婷在线影院| 日本高清在线看免费观看| 99久久99视频| 欧美在线精品一区二区三区| 日本91视频| 久久这里只有精品免费| 亚洲成在线观看 | 奇米影视狠狠精品7777| 亚洲精品午夜天堂网页| 国产小视频在线高清播放| 日本免费一区视频| 日本欧美中文字幕精品亚洲| 亚洲综合狠狠| 亚洲一区二区在线无码| 国产夜色视频| 午夜视频日本| 无码国内精品人妻少妇蜜桃视频| 亚洲天堂网站在线| 青草91视频免费观看| 国产内射一区亚洲| 女人18毛片水真多国产| 久久人人97超碰人人澡爱香蕉| 国内精品91| 97视频在线观看免费视频| 色悠久久综合| 亚洲一区二区三区香蕉| 国产黄在线免费观看| 国产精品永久在线| 97青青青国产在线播放| 亚洲欧美精品在线| 欧美激情第一欧美在线| 亚洲国产成熟视频在线多多| 免费在线成人网| 国产午夜福利亚洲第一| 91精品国产自产在线老师啪l| 一级一级特黄女人精品毛片| 日韩精品成人在线| 日韩第九页| 波多野结衣在线se| 一本大道无码日韩精品影视| 欧美成人精品一级在线观看| 国产精品成人久久| 国产综合在线观看视频| 青草视频在线观看国产| 精品一区二区三区视频免费观看| 人妻精品全国免费视频| 国产精品男人的天堂| 成年片色大黄全免费网站久久 | h网站在线播放| 九九热精品视频在线| 亚洲欧美成人影院| 亚洲国产av无码综合原创国产| 香蕉eeww99国产精选播放| 国产日韩精品欧美一区灰| 亚洲国产成人在线| 亚洲性网站| 午夜老司机永久免费看片|