?

面向生產環節的分時任務調度技術硏究

2022-07-07 04:06廖一星綦云華徐亮楊政
科技研究·理論版 2022年11期

廖一星 綦云華 徐亮 楊政

摘要:任務調度是操作系統的重要組成部分,而對于實時操作系統,任務調度直接影響其實時性能。任務調度能夠在約定的特定時刻去執行任務的過程。所以有了任務調度即可解放更多的人力,而是由系統自動去執行任務。因而任務調度具有非常重要的作用。本文立足于生產環節,淺析分時任務調度技術。

關鍵詞:任務調度;分時任務;調度技術

隨著經濟的迅速發展,市場競爭日益激烈。各企業想要在理解的市場競爭中發揮獨有的優勢,提高企業市場競爭力,就必須加大研發力度,不斷研究開發出新產品并成功投入市場。所謂新產品是指在原理、結構、材料、性能等某一方面或幾方面有新的改進的產品。新產品試制是在動態狀態下開展的,每時每刻生產進程都要發生變化。它的研究重點主要在于資源的協調利用和管理體系的優化上,而并不是研究實際應用中特別重要的動態排產、分批方法等。

因此,這不太符合現實條件。所以企業任務調度平臺(Enterprise task scheduling platform,簡稱ETSP)正是在市場競爭激烈的背景下提出,力求推動企業發展。企業任務調度平臺能夠充分利用quartz開源框架功能強大,具有應用靈活,易于集成的特點。而且,該調度平臺能夠很快地適應企業任務多而雜的現狀,將企業中一系列調度任務集中管控再分布。例如:消息發送、數據備份、挖掘、報表分析、數據采集、同步、遷移以及加工等。此外,該調度平臺還能夠滿足用戶的個性化需求,它能夠讓用戶可根據需要定制個性化任務調度,有利于有效監管任務調度運行。進而提高任務調度的運行效率,減輕IT人員的開發與維護工作,提高企業整體工作效率。

一、Quartz任務調度的基本工作原理

傳統的企業任務調度一般采用Java SDK Timer和TimerTask類,或者使用Crontab+SQL來達到目的。但是這類任務調度使配置和代碼比較分散,難以對其進行維護和監控,在執行過程沒有保證。而且還會缺失錯誤恢復,在一些步驟復雜、分散,特別是在任務量大的情況下,依靠Java SDK Timer和TimerTask類,或者使用Crontab+SQL是很難進行工作的,達不到工作目的。然而,Java SDK Timer和TimerTask以及Crontab+SQL這些局限恰好是Quartz的獨特優勢。Quartz具有核心三要素,缺一不可:trigger、job和scheduler。在這核心三要素中,其中scheduler為執行調度的實際控制器,trigger、job是任務調度的元數據。trigger用于定義調度規則,即按照什么時間或周期去執行任務。一個job可以被很多個trigger關聯,但是一個trigger只能關聯一個job。Scheduler定義了很多接口和方法,它表示一個Quartz獨立的運行容器,Trigger和JobDetail可以在Scheduler中被注冊,并許可外程序部通過組及名稱訪問、控制容器中Trigger和JobDetail。同時,Quartz擁有完備的事件和事件監聽體系,大部分組件都擁有觸發后事件、調度器開始事件、關閉事件任務執行前事件等。

二、企業任務調度平臺的設計與實現

1.企業任務調度平臺功能設計

根據Quartz的工作原理,企業任務調度系統主要包括控制臺、任務調度、工作管理等模塊。用戶在使用企業任務調度平臺的時候,能夠管控所有需要調度的任務。其中,一個任務包含N個工作,需要通過系統界面將N個工作進行工作編排,每個任務都基于一條運行規則按照工作編排的順序執行。所以,要新建一個調度任務,可以按照以下的步驟:

首先,用戶先在運行規則管理模塊編排運行規則。然后經過規則測試成功之后,生成一條新的運行規則。例如,用戶確定運行規則為“每1個月的第10個工作日,在0時0分0秒執行”,則規則編排器自動生成Quartz cron表達式“0 0 0 10W 1/1 ?”。而且用戶在使用的過程中還能夠自主選擇該運行規則基于普通日歷還是工作日歷生成。工作日歷的管理功能在工作管理模塊中。

其次,在工作管理模塊新建任務所需要執行的各項工作。每項工作生成一條新的工作項。這些工作項可以是企業其他系統提供的接口,也可以是一些用于數據處理的存儲過程或者是用于數據加工的ETL(Extract-Transform-Load)工具提供的工作流。特別是用戶在新建工作項的時候,必須合理配置該工作所屬的工作組。合理配置工作組目的是為了更好的管理各項工作,進而提高工作效率。在合理配置工作組的時候,可以依據用途、類別以及系統界限來合理配置。例如,把所有涉及存儲過程的工作項歸為一類、系統接口歸為一類;把所有涉及數據庫處理的歸為一類、程序執行歸為另一類等。

最后,用戶再利用已新建的運行規則及所需工作項,可以選擇N個工作項來編排一個調度任務,并設置該任務的出錯處理、節假日處理等事項。

2.企業任務調度平臺的實現

對于復雜的企業級任務調度應用來說,其應當在程序的開發階段把整個Quartz的源代碼復制到具體的開發環境中。這樣一方面可以通過修改或擴展Quartz一部分類來實現某些更為復雜的、Quartz本身尚不提供的接口功能;另一方面,還能夠通過閱讀源碼,讓企業以及用戶全面了解Quartz的實現原理,有利于更加熟悉整個開發過程。

Quartz主要是依賴于一個關系型數據庫管理系統來持久化存儲數據任務。在Quartz中,企業任務本身實際的運行時間和耗費在每個監聽器上的時間都會被直接記入到任務的執行時間上,使用大量的監聽器將會直接影響它的執行效率。例如JobListeners、SchedulerListeners以及TriggerListeners等都會影響到Quartz的工作效率。而且,Quartz在與數據庫交互方面只是做了很少的處理,它幾乎所有的時間都花費在數據庫上。因為基于JDBC的JobStore的速度很大程度上取決于對數據庫連接的速度。所以,在企業任務調度平臺實施過程中,為了提高平臺性能,就必須遵循兩個工作原則:一是為Quartz表建立索引;二是避免創建大量全局監聽器。

可見,企業的任務調度規模越大、越復雜、越被頻繁地執行,其從信息化、自動化中獲取的經濟利益也越大。本文通過對Quartz企業任務調度平臺設計與實現的介紹,顯而易見:企業想要有更高的資源使用效率、伸縮性以及更少的出錯幾率,完全可以充分利用Quartz來實現企業任務調度,進而推動企業發展。

結束語 總之,大數據時代的來臨以及商業應用飛速發展,企業在生產以及銷售等各個環節的任務調度效率也至關重要,將會影響企業的經濟。因此,相關人員還必須從產品的生產環節著手,深入研究企業分時任務調度,并提出行之有效的措施提高企業分時任務調度技術,為企業可持續發展奠定堅實的基礎。

參考文獻:

[1]胡茂集. 基于quartz的企業任務調度平臺的設計與實現[J]. 科技尚品, 2017, (2):181.

[2]耿勇,薛勝軍.J2EE應用中任務的動態調度[J].開發研究與設計技術,2007,(6):1589-1674.

[3]王崟,董志勇.基于Quartz的網管系統任務調度的實現[J].電腦開發與應用,2011,24(7):23-24.

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合