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

淺談分布式任務注冊及調度的實現方法

2021-04-03 12:12:29俞珍秒汪明貴
中國設備工程 2021年8期
關鍵詞:策略信息

俞珍秒,汪明貴

(南京南瑞信息通信科技有限公司,江蘇 南京 210003)

隨著現代信息技術的高速發展,企業的信息系統也充斥著大量的數據。為了合理地管理并利用這些數據,企業不得不對業務核心系統進行擴展,延伸出眾多業務子系統。而這些子系統為了滿足業務需求,又不得不嚴重依賴系統的核心數據。為了能有效地降低數據間的耦合,保證系統數據的一致性,業務系統通常會采用分布式任務調度系統來通知子系統的計算組件及時處理。但是核心數據的往往具有高頻變化特性,這給任務調度系統和業務子系統的穩定運行都提出了挑戰。

本文提供了一種基于異步式編程的分布式任務注冊及調度的實現方法,命名為CaesiumServer。CaesiumServer 通過異步式編程將任務注冊隊列中的任務分發至不同的處理單元,提高了任務注冊模塊的高效性。通過任務合并,避免了不必要的任務調度,保證了任務執行方的穩定運行。最后,多種任務執行策略能夠合理規劃資源,滿足不同場景下的任務調度需求。

1 總體設計

在CaesiumServer 的設計中,任務接收模塊接收到注冊任務后,將任務信息中相同的任務進行合并后更新至任務池,以此保證相同的任務不會被多次重復觸發。此外,任務執行模塊在獲取任務池任務后,會根據任務性質直接啟動任務執行程序或發布任務執行信息。最后,任務執行方的執行控制器會根據任務注冊時指定的策略啟動任務執行程序。

2 任務注冊信息

在CaesiumServer 設計中調度引擎的任務接收模塊處理任務注冊信息。任務注冊方根據業務的需求將任務信息按照指定的格式發送到任務注冊隊列中,其中的任務信息主要包括:任務執行體ID、執行類、計劃開始執行時間、任務類型、任務觸發URL、是否可忽略、執行策略、執行計劃(Cron 表達式描述)、任務執行上下文等信息。

任務的接收模塊主要是通過異步式編程框架akka 來實現。akka 框架對構建高并發、高容錯性的分布式應用具有良好的支持。其中的akkaactor 模型是一種將行為定義到actor,actor 間通過消息通信,消息發送異步進行,消息處理(在actor 內)同步有序進行的一種高并發、非阻塞式編程模型。在CaesiumServer 設計中任務接收模塊主要定義了三種Actor,分別為:任務合并單元、更新處理單元、常規

處理單元。任務接收模塊從任務注冊隊列獲取任務信息后,會根據任務類型分別將任務信息分發至不同的Actor 進行處理。當任務類型為“可合并”型任務時,模塊會根據指定時間段內的相同內容合并成一條任務后,發送至待執行任務池。當任務類型為“更新”型任務時,會判斷當前待執行任務池中是否存在未被執行的相同任務,如果存在會將本次任務中的包含的信息更新至待執行任務池;如果不存在則將本次任務發送至待執行任務池。當任務類型為“常規”型任務時,則將本次任務直接發送至待執行任務池。

處理任務注冊信息中如何快速、高效的處理注冊任務是其難點,因為應用注冊方會同時注冊大批量的任務。此時通過akka 的事件驅動機制及時觸發相應的邏輯尤為重要。

3 發布/執行任務

CaesiumServer的任務執行模塊以定期檢查的方式,根據待執行任務池中的任務信息判斷當前任務是否需要被執行。當任務需要被執行時,首先會查看該任務信息中任務觸發URL 是否有設定值。如果有設定值,會通過異步調用該觸發URL 來啟動任務執行體;如果未設定任務觸發URL,就會將任務信息發送至任務執行隊列。在任務觸發完成后,會根據任務的執行計劃更新或刪除任務池中的任務。

4 啟動任務

任務執行方從任務執行隊列中獲取“任務執行體ID”與自身一致的待執行任務信息后,將任務交由任務執行控制器進行處理。任務執行控制器主要包含一個分發線程、一個執行線程池。分發線程主要按照任務的“執行策略”控制任務執行類以不同的方式執行。“執行策略”主要包括“隊列”、“并行”、“取消當前”、“忽略當前”、“延遲”等方式。執行線程池主要用來執行各任務。

當任務的執行策略為“隊列”方式時:分發線程會將任務按照“執行類”為單位,為該執行類創建一個執行隊列,依次將任務發送至執行線程池中執行,直到將執行隊列中的任務全部執行完成。

當任務的執行策略為“并行”方式時:分發線程會直接將該任務發送至執行線程池中執行。

當任務的執行策略為“取消當前”方式時:分發線程會判斷任務執行線程池中是否存在與本任務相同的“執行類”在運行,如果存在則調用當前任務的取消邏輯,待取消成功后將本次任務發送至執行線程池中執行。如果不存在,直接將該任務發送至執行線程池中執行。

當任務的執行策略為“忽略當前”方式時:分發線程會判斷任務執行線程池中是否存在與本任務相同的“執行類”在運行,如果存在則舍棄當前的任務,不對本次任務做任何處理。如果不存在,直接將該任務發送至執行線程池中執行。

當任務的執行策略為“延遲”方式時:分發線程會按照“執行類”為單位記錄前次任務執行時間,如果當前時間超過延遲時間時,將本次任務發送至執行線程池中執行;如果尚未達到延遲時間會創建一個定時器,在時間到達時將任務發送至執行線程池中執行。

不同執行策略的處理方式各異,實現難度也各異。其中“取消當前”型任務處理難度較大。因為所有的任務都是在任務執行線程池中運行,如何獲取當前任務的引用以及如何判斷任務取消成功也是一個處理難點。實施時可通過包裝類對方式對“取消當前”型任務進行封裝,包裝類可設計成包含當前任務、前次任務等信息。包裝類的執行方法中首先需要調用前次任務的取消方法,直到取消成功后再調用當前任務的執行方法。

5 結語

CaesiumServer 可保證任務調度引擎的高效性、穩定性、容錯性,改變了以往任務調度引擎的過載帶來的任務觸發不及時、丟失等狀況。能夠顯著加強任務執行方的處理效率,特別是根據任務特征選擇不同的執行策略能夠合理的優化服務器資源,改變了以往任務執行方大量任務同時執行帶來的服務器壓力,甚至崩潰的風險。

猜你喜歡
策略信息
基于“選—練—評”一體化的二輪復習策略
求初相φ的常見策略
例談未知角三角函數值的求解策略
我說你做講策略
高中數學復習的具體策略
數學大世界(2018年1期)2018-04-12 05:39:14
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
Passage Four
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 97精品久久久大香线焦| 97精品国产高清久久久久蜜芽 | 一级毛片在线播放免费| 亚洲欧美不卡视频| 五月天综合网亚洲综合天堂网| 国产福利一区视频| 四虎免费视频网站| 99久久性生片| 亚洲综合网在线观看| 日韩国产高清无码| 超碰免费91| 92午夜福利影院一区二区三区| 中文字幕无码中文字幕有码在线| 亚洲国产系列| 欧美一级夜夜爽www| 日本亚洲成高清一区二区三区| 青青国产视频| 国产精品自在自线免费观看| 国产高潮视频在线观看| 成人免费一级片| 高清不卡毛片| 国产免费人成视频网| 天天做天天爱天天爽综合区| 亚洲人成网站在线播放2019| 精品国产免费第一区二区三区日韩| 一本久道久久综合多人 | 国产精品久久久久久久伊一| 国产成人一二三| 日韩福利在线视频| 亚洲激情99| 成人国产一区二区三区| 白浆免费视频国产精品视频| 久久亚洲美女精品国产精品| 久久亚洲国产一区二区| 91福利在线观看视频| 欧美一级专区免费大片| 国产精品无码制服丝袜| 人妻免费无码不卡视频| 青青青视频蜜桃一区二区| 国产午夜精品鲁丝片| 不卡视频国产| 999国内精品视频免费| 久久99国产综合精品女同| 91亚洲视频下载| 日本午夜在线视频| 日本亚洲最大的色成网站www| 最近最新中文字幕免费的一页| 1769国产精品免费视频| 久久一色本道亚洲| 国产va欧美va在线观看| 亚洲国产欧美自拍| 国产正在播放| 亚洲人成网址| 男人天堂亚洲天堂| 一级片免费网站| 国产成人欧美| 国产99在线观看| 欧美成人精品一级在线观看| 国产69囗曝护士吞精在线视频| 黄色免费在线网址| a级毛片视频免费观看| 欧美日韩国产高清一区二区三区| 成人在线天堂| 日韩福利视频导航| 特级毛片8级毛片免费观看| 青草国产在线视频| 国产精品成人观看视频国产| 国产一区二区三区夜色| 国产精品理论片| 毛片在线看网站| 欧美不卡视频在线观看| 五月婷婷丁香综合| 欧美97欧美综合色伦图| 动漫精品啪啪一区二区三区| 91福利免费视频| 国产黄网站在线观看| 国产精品主播| 国产福利在线免费观看| 国产黄网站在线观看| 久久亚洲美女精品国产精品| 日本久久久久久免费网络| 丁香婷婷激情网|