97精品国产精品公司,久久www免费人成看片中文,天天谢天天干,日韩精品无码专区资源站

首頁 - 關(guān)于研博 - 技術(shù)筆記 - PowerJob進(jìn)階—MapProcessor
PowerJob進(jìn)階—MapProcessor
2024.10.15

前言

在學(xué)習(xí)完powerjob并了解基本工作原理之后,基于業(yè)務(wù)需要基礎(chǔ)的BasicProcessor(單機(jī)處理器)不能完美的契合業(yè)務(wù)需求,BasicProcessor如果一次任務(wù)中處理設(shè)備量過大,那么則會(huì)造成單個(gè)任務(wù)實(shí)例負(fù)載過高,并且系統(tǒng)壓力過大,因此選用了支持將單個(gè)任務(wù)中全部設(shè)備,通過將任務(wù)分批拆分為多個(gè)包含少量設(shè)備的子任務(wù)的MapProcessor。

 

 

MapProcessor介紹

 

 

MapProcessor接口繼承了BasicProcessor接口并且對其進(jìn)行再次增強(qiáng),使其可以通過子任務(wù)的方式將任務(wù)拆分執(zhí)行,對執(zhí)行任務(wù)的節(jié)點(diǎn)更加友好,在MapProcessor中可以通過MapProcessor接口的isRoot()方法判斷該次執(zhí)行的任務(wù)是否為根任務(wù),調(diào)用該方法會(huì)返回一個(gè)布爾值,為根任務(wù),則可以構(gòu)建子任務(wù),需手動(dòng)創(chuàng)建子任務(wù)實(shí)體類,用于存入子任務(wù)執(zhí)行時(shí)所需要的參數(shù),此次在項(xiàng)目中使用則是解決設(shè)備功能調(diào)用中同時(shí)給大批量設(shè)備同時(shí)下發(fā)功能調(diào)用指令.考慮到后期設(shè)備可能過多,所以選擇MapProcessor處理器通過構(gòu)建子任務(wù)的方式將,任務(wù)拆分,每個(gè)子任務(wù)攜帶部分設(shè)備ID分別執(zhí)行,減輕單次執(zhí)行任務(wù)時(shí)的壓力。

 

具體實(shí)現(xiàn)

 

  

1. 定義子任務(wù)類

 

用于在構(gòu)建子任務(wù)時(shí)攜帶執(zhí)行所需參數(shù)。

2.創(chuàng)建執(zhí)行執(zhí)行器并實(shí)現(xiàn)MapProcessor接口

在實(shí)現(xiàn)接口時(shí)需重寫process()方法即執(zhí)行的任務(wù)邏輯

 

3. isRoot()

通過MapProcessor執(zhí)行任務(wù),無論是根任務(wù)還是子任務(wù)都是執(zhí)行的同一個(gè)process()方法,所以MapProcessor接口提供了isRoot()方法用來判斷,當(dāng)前執(zhí)行的任務(wù)是根任務(wù)還是子任務(wù)。

4.判斷為根任務(wù)

當(dāng)isRoot()方法返回true時(shí),則表明當(dāng)前任務(wù)為根任務(wù),此時(shí)需構(gòu)建子任務(wù)集合,例如此任務(wù)需操作1000個(gè)設(shè)備,那么則可以構(gòu)建5個(gè)子任務(wù)將1000個(gè)設(shè)備ID分別保存到5個(gè)子任務(wù)對象中,然后將五個(gè)子任務(wù)對象放入到集合中,再通過調(diào)用map()方法,將子任務(wù)集合及任務(wù)名,傳入到taskContext,任務(wù)上下文中,以便后續(xù)的調(diào)用。

5.判斷不為根任務(wù)

本文僅以簡單的二層任務(wù)結(jié)構(gòu)距離,如果判斷不為根任務(wù)則此時(shí)一定是子任務(wù),只需要通過taskContext調(diào)用getSubTask()方法,將我們創(chuàng)建的子任務(wù)取出。

并根據(jù)先前在創(chuàng)建子任務(wù)時(shí)傳入的執(zhí)行所需參數(shù),進(jìn)行對應(yīng)的業(yè)務(wù)處理。

 

  

 

創(chuàng)建任務(wù)

在創(chuàng)建需要使用MapProcessor處理器處理的任務(wù)時(shí),其他的參數(shù)與我們之前創(chuàng)建演示Demo無異,只是需要在執(zhí)行配置處,選擇Map執(zhí)行,并將我們所編寫的處理器全類名填寫正確.如果沒有選擇Map執(zhí)行,任務(wù)實(shí)例日志中會(huì)顯示。

此時(shí)則需要檢查,創(chuàng)建任務(wù)的參數(shù)是否填選正確。

 

后續(xù)的任務(wù)執(zhí)行則無特別操作,只需要在任務(wù)管理頁面,通過滑塊來確定是否需要執(zhí)行該任務(wù).并在運(yùn)行實(shí)例中可以查看每次任務(wù)執(zhí)行的日志。

 

 

拓展: MapReduceProcessor

 

  

此處理器則是在MapProcessor處理器基礎(chǔ)上,添加了reduce()方法,在實(shí)現(xiàn)該接口時(shí)除了需要重寫process方法外還需要重寫reduce方法.reduce方法則是根據(jù)process()方法的返回值,對子任務(wù)的執(zhí)行狀態(tài)進(jìn)行統(tǒng)計(jì),方便后續(xù)對子任務(wù)的計(jì)算操作,單此處理器在執(zhí)行計(jì)算統(tǒng)計(jì)時(shí),需要對數(shù)據(jù)庫進(jìn)行全量掃描,對節(jié)點(diǎn)內(nèi)存壓力過大,謹(jǐn)慎使用,如果只是簡單的對任務(wù)進(jìn)行拆分,不需要后續(xù)再對子任務(wù)處理結(jié)果進(jìn)行計(jì)算操作,MapProcessor即可進(jìn)行處理。

 

獲取相關(guān)資料
下載地址將會(huì)發(fā)送至您填寫的郵箱
相關(guān)新聞
水文SL651協(xié)議解析
2025-01-17
JT/T808 協(xié)議解析
2025-01-10
環(huán)保HJ212-2017協(xié)議介紹開發(fā)
2025-01-03
  • 在線客服
  • 電話咨詢
  • 微信
  • 短視頻
  • 伊人久久中文大香线蕉综合 | 天美麻豆星空| 亚洲精品无码二区| 亚洲日韩熟女精品小说| 国产nnxxxx| 国模亚洲精品无码| 人妻系列无码破解| 福利久久区| 国产综合无码久久亚洲| 免费无码国产在线观看p| www.在线观看污| 国产一区欧美一区在线观看| 久久黄片中文字幕| 欧美日韩第一区二区三区| 国产精品一级毛片无码百度| 少妇射| 精品中文无码Av毛片免费| 欧洲免免费视频| 亚洲人成中文字幕在线观看| 国产亚洲一区二区三区不卡| 久久性影院| 亚洲日韩制服丝袜中文字幕| 欧美精品久久一起草| 污污污污污www网站免费观看| 国产成人精品久久亚洲高清不卡| 无码av最新无码av专区| 中出无码AV| 色综合久久久久综合体桃| 最新中文字幕av| 色综合网址| 日产久久久精品| 天干天干天啪啪夜爽爽色| 中文字幕在线三区| 理论片在线看片无码| 爆老熟妇后门| 另类小说 亚洲 无码| 疯狂欧美大伦交乱| 国产日本乱人伦片中文三区| 亚洲 国产 麻豆| 四虎电影网址| 亚洲欧美另类精品一区|