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

基于Quartz的可視化定時任務管理方案

2018-02-26 12:23:22葉剛
電子技術與軟件工程 2018年17期
關鍵詞:可視化

葉剛

摘要

Quartz的可視化定時任務管理方案介紹了如何直觀、有效地管理諸多的定時任務。該方案高效管理著全部任務的執行狀態,直觀地在頁面顯示著他們的運行結果;任務調度失敗時,可以及時調出日志查明異常原因;同時在具有大量并發執行定時任務的應用系統中效率會大幅提升。

【關鍵詞】可視化 Quartz 定時任務

1 引言

定時任務指在特定的時間點(如:每天23:59:59),特定的時間段(如:每周一12:00-13:00),自行執行的任務。伴隨著客戶的需求,軟件系統中會出現諸如此類的場景如:定期清理日志數據,定時發送消息,定時更新與備份數據,定期統計數據等等,它的出現解決了諸多上述類型的問題。如果它僅僅靠后臺處理執行,我們無法直觀地知道它的運行的狀態即是否執行,運行結果即是否成功以及運行異常。針對此種情況,Quartz的可視化定時任務管理方案可以幫助我們高效的管理定時任務。

2 Quartz概述

Quartz是一個使特定的功能在給定的時間點或時間范圍自行執行的框架,即任務調度的框架,他有三個重要要素:

(1)調度任的調度器Scheduler,所有的任務執行與否都由其控制;

(2)控制任務什么時候被調度器觸發的觸發器Trigger,觸發器可以設置任務才特定的時間或者時間段觸發與任務是否并發執行等;

(3)設置任務執行方法、任務標識等作業屬性的JobDetail。

3 定時任務管理方案設計

在基于Quartz的可視化定時任務管理方案設計時,為了給予定時任務更高效、更直觀的管理方式,同時也為了對給每個任務的運行狀況的全面追蹤,故而此方案針對可視化以及定時任務的調度進行了以下的設計:

3.1 可視化設計

可視化化設計是對所有任務進行界面化的管理,針對每項定時任務的各項屬性,如任務的標識、名稱、執行狀態、調度表達式、任務數據路徑(類完整路徑)、任務執行方法以及是否并發執行等以一條完整記錄形式存入數據庫中。至此,一個個任務轉化成關系表中的一條條記錄,定時任務的可視化管理轉變為常見的關系表的可視化管理。

3.2 定時任務調度設計

可視化設計僅僅是管理任務并未涉及到任務的調度,定時任務調度的設計也是重要的一環,因此Quartz框架在此中必不可少。結合可視化的管理以及任務在被調度器調度時的運行狀態,對定時任務的執行過程做出以下設計:

由圖1可知定時任務的調度不僅僅是服務啟動時任務調度開始啟動,對于每個任務都包括啟動、執行、暫停以及終止,通過狀態轉變以達到與可視化設計融合。

4 定時任務管理方案實現

4.1 可視化實現

(1)基于可視化設計,對定時任務表結構進行如下設計:

CREATE TABLE 'elt_job'(

'id'char(36)NOT NULL COMMENT'任務標識',

'name'varchar(100)NOT NULLCOMMENT'任務隊列標識名稱,取主鍵',

'group'varchar(100)NOT NULLCOMMENT'所屬群組',

'status'varchar(10)NOT NULL DEFAULT'0' COMMENT'任務狀態(運行中,暫停,終止)',

'exp'varchar(100)NOT NULLCOMMENT'調度表達式',

'mark'varchar(255)DEFAULT NULLCOMMENT'備注',

'bean'varchar(255)DEFAULT NULLCOMMENT'任務對象(包+類名)',

'is_con'bit(1)NOT NULL DEFAULT b'1'COMMENT'是否并發執行',

'method_name'varchar(100)NOT NULLCOMMENT'任務執行方法',

'create_time'datetime DEFAULT NULLCOMMENT'創建時間',

'title'varchar(60)DEFAULT NULLCOMMENT'任務簡述/名稱',

PRIMARY KEY('id'),

UNIQUE KEY'group'('name','group')USING BTREE

)ENGINE=InnoDB DEFAULTCFIARSET=utf8;

(2)②結合定時任務調的設計,頁面設計如下:

由圖2可知,通過基于Quartz的定時任務調度可視化界面實現,能夠為用戶提供更直觀的定時任務執行結果展示,進而為定時任務執行狀態以及異常原因提供更直觀的數據依據。

4.2 定時任務調度實現

任務調度是通過Quartz框架實現的,其中整個調度分為以下三步:

(1)根據需求創建需要定時執行任務的方法;

(2)將上述的各個方法對應按照規則存于定時任務表中;

(3)獲取任務方法,即獲取定時任務表數據,結合Quartz框架將任務注冊于調度器,調度器控制定時任務運行狀態的主要代碼如下:

//獲取定時任務表中的記錄

ListeltJob List=eltJobMapper.selectByExample(new Criteria);

//獲取調度器Scheduler

Scheduler s=schedulerFactoryBean.getScheduler();

//根據任務中的名稱和任務組設置規則TriggerKey:

TriggerKey triggerKey=TriggerKey.triggerKey(eltJob.getName(),eltJob.getGroupo);

//組裝調度規則

CronTrigger trigger=(CronTrigger)scheduler.getTrigger(triggerKey);

//任務同步執行還是異步執行

Class cls=E1tJob.CONCURRENT IS.equals(concurrentld)?JobFactory.class:JobFactoryDisallowConcurrentExecution.class;

//通過class獲取job對象創建JobDetail實例

JobDetail detail=JobBuilder.newJob(cls).withIdentity(eltJob.getName(),eltJob.getGroup()).builds;

detail.getJobDataMap().put("job",eltJob);

//獲取調度表達式

CronScheduleBuilderscheduleBuilder=CronScheduleBuilder.cronSchedule(eltJob.getExp());

//創建調度觸發器trigger

trigger=TriggerBuilder.newTrigger().withIdentity(eltJob.getName(),eltJob.getGroup()).withSchedule(scheduleBuilder).build();

//在調度器上注冊Job及觸發器此時調度任務

s.scheduleJob(detail,trigger);

//啟動任務

s.start();

//根據任務名稱和任務組獲取JobKey:

JobKey key=JobKey.jobKey(eltJob.getName(),eltJob.getGroup());

//暫停任務

s.pauseJob(key);

//恢復任務

s.resumeJob(key);

//刪除任務

s.deleteJob(key);

(4)PostConstruct注解修飾的方法在項目啟動時執行且僅執行一次,由于項目啟動時伴隨定時指定定時任務被調用,需要增加一個由次注解修飾的啟動任務的方法,而此方法中考慮到部分定時任務不需隨項目啟動而被調度,會只調用定時任務表狀態staus=1(即為運行中)的任務。

5 總結

基于Quartz可視化定時任務管理不僅可以通過頁面直觀地展示各個任務運行狀態,而且上次任務失敗原因也會被捕獲進而在頁面上展示,方便了開發者或者運維人員及時地發現任務調度中存在的問題,以便快速的解決問題。另外,存在于項目中定時任務方法,沒有通過數據庫進行管理的任務數據,后期入庫后亦可在頁面上啟動此類任務,此做法大幅度的節約了系統資源。存在大量并發方式調度定時任務的項目中,在Quartz框架中設置該類任務為并發執行任務,會大大提高定時任務的執行效率,解決系統需要經常性進行的維護工作。

參考文獻

[1]劉光明,朱肖穎.Web應用與Quartz的整合研究[J].企業科技與發展,2018(03).

[2]符宇航,鄭宗良,曾莉.基于Web的科研項目管理系統的設計與實現[J].電腦知識與技術,2016(27).

[3]許艷丹.基于Quartz.NET框架的任務調度平臺研究與設計[J].軟件導刊,2016(02).

[4]劉增杰,MySQL 5.7 從入門到精通[M].清華大學出版社,2016.

猜你喜歡
可視化
無錫市“三項舉措”探索執法可視化新路徑
基于CiteSpace的足三里穴研究可視化分析
自然資源可視化決策系統
北京測繪(2022年6期)2022-08-01 09:19:06
三維可視化信息管理系統在選煤生產中的應用
選煤技術(2022年2期)2022-06-06 09:13:12
思維可視化
師道·教研(2022年1期)2022-03-12 05:46:47
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
自然資源可視化決策系統
北京測繪(2021年7期)2021-07-28 07:01:18
基于CGAL和OpenGL的海底地形三維可視化
可視化閱讀:新媒體語境下信息可視化新趨勢
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
主站蜘蛛池模板: 热久久综合这里只有精品电影| 91免费观看视频| 园内精品自拍视频在线播放| 亚洲欧美日韩成人在线| 国产丰满成熟女性性满足视频| 亚洲久悠悠色悠在线播放| 丁香五月激情图片| 亚洲中文字幕97久久精品少妇| 国产欧美日韩视频怡春院| 最新无码专区超级碰碰碰| 3344在线观看无码| 亚洲男人天堂2018| 久久黄色小视频| 免费国产高清视频| 国产又粗又爽视频| 国产欧美日韩综合在线第一 | 国产免费观看av大片的网站| 动漫精品中文字幕无码| 免费看黄片一区二区三区| 国产精品福利导航| 国内精品视频在线| 高清无码一本到东京热| 欧洲av毛片| 国内精品久久九九国产精品| 婷婷成人综合| 国产在线一区视频| 91亚洲视频下载| 在线无码av一区二区三区| 天天爽免费视频| 美女黄网十八禁免费看| 国禁国产you女视频网站| 国产一级无码不卡视频| 在线观看亚洲成人| 国产色网站| 国产在线视频导航| 99色亚洲国产精品11p| 久久精品丝袜| 97在线碰| 91国内在线视频| 亚洲天堂免费在线视频| 真实国产乱子伦高清| 亚洲一区二区三区香蕉| 亚洲日韩在线满18点击进入| 久久性妇女精品免费| 欧洲亚洲一区| 国产成人综合久久精品下载| 精品无码国产自产野外拍在线| 亚洲精品片911| 国产亚洲精品资源在线26u| 一区二区三区成人| 综合色88| 欧美日在线观看| 人妻精品久久无码区| 亚洲最大看欧美片网站地址| 在线免费观看a视频| 亚洲精品国产成人7777| 日韩欧美色综合| 国产精品林美惠子在线播放| 一级做a爰片久久毛片毛片| 中文字幕有乳无码| 午夜国产精品视频| 91成人在线免费视频| 97国产在线观看| 91成人免费观看| 精品自窥自偷在线看| 国产探花在线视频| av一区二区三区在线观看| 在线无码av一区二区三区| 国产一区亚洲一区| 天天做天天爱天天爽综合区| 亚洲国产看片基地久久1024| 日韩精品久久久久久久电影蜜臀| 亚洲欧美综合在线观看| 国产精品成人久久| 日本午夜影院| A级毛片无码久久精品免费| 欧美翘臀一区二区三区| 黄色污网站在线观看| 亚洲婷婷六月| 欧美日韩亚洲综合在线观看 | 久久精品日日躁夜夜躁欧美| 亚洲欧美一级一级a|