[發(fā)明專利]基于go語(yǔ)言定時(shí)任務(wù)異步執(zhí)行的實(shí)現(xiàn)方法及系統(tǒng)在審
| 申請(qǐng)?zhí)枺?/td> | 202011170480.8 | 申請(qǐng)日: | 2020-10-28 |
| 公開(公告)號(hào): | CN112256398A | 公開(公告)日: | 2021-01-22 |
| 發(fā)明(設(shè)計(jì))人: | 黃善輝;張暉;高傳集;王剛 | 申請(qǐng)(專利權(quán))人: | 浪潮云信息技術(shù)股份公司 |
| 主分類號(hào): | G06F9/455 | 分類號(hào): | G06F9/455;G06F9/54 |
| 代理公司: | 濟(jì)南信達(dá)專利事務(wù)所有限公司 37100 | 代理人: | 孫園園 |
| 地址: | 250100 山東省濟(jì)南市高*** | 國(guó)省代碼: | 山東;37 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 go 語(yǔ)言 定時(shí) 任務(wù) 異步 執(zhí)行 實(shí)現(xiàn) 方法 系統(tǒng) | ||
1.一種基于go語(yǔ)言定時(shí)任務(wù)異步執(zhí)行的實(shí)現(xiàn)方法,其特征在于,該方法是建立一個(gè)基于XXL-JOB的調(diào)度中心,對(duì)pod上報(bào)的所有定時(shí)任務(wù)進(jìn)行統(tǒng)一調(diào)度,避免多副本應(yīng)用的定時(shí)任務(wù)發(fā)生并發(fā)沖突,對(duì)依賴于同一個(gè)服務(wù)的不同副本應(yīng)用的沖突任務(wù)進(jìn)行調(diào)度,使副本應(yīng)用能夠正常運(yùn)行;副本應(yīng)用將執(zhí)行定時(shí)任務(wù)以及連接調(diào)度中心的go語(yǔ)言執(zhí)行器引入,將每個(gè)副本應(yīng)用pod的ip地址注冊(cè)到調(diào)度中心,將執(zhí)行器以及任務(wù)執(zhí)行所必要的參數(shù)傳入調(diào)度中心,由調(diào)度中心統(tǒng)一調(diào)度。
2.根據(jù)權(quán)利要求1所述的基于go語(yǔ)言定時(shí)任務(wù)異步執(zhí)行的實(shí)現(xiàn)方法,其特征在于,所述執(zhí)行器用于接收調(diào)度請(qǐng)求并執(zhí)行任務(wù)邏輯,同時(shí)使用RPC通信接入XXL-JOB的調(diào)度中心,接收調(diào)度中心的執(zhí)行請(qǐng)求、終止請(qǐng)求和日志請(qǐng)求。
3.根據(jù)權(quán)利要求1所述的基于go語(yǔ)言定時(shí)任務(wù)異步執(zhí)行的實(shí)現(xiàn)方法,其特征在于,所述執(zhí)行器提供如下接口:
func idleBeat(jobId int)Ret{}:用于返回自身的狀態(tài);
func kill(jobId int)Ret{}:用于終止正在執(zhí)行的定時(shí)任務(wù);
func log(logDateTime,logId int64,fromLineNumint)LogResult{}:用于打印日志;
func run(param TriggerParam)Ret:用于執(zhí)行定時(shí)任務(wù);
func registry(registryParam RegistryParam);
func registryRemove(RegistryParam registryParam);
func callback(callbackParamList[]CallbackParam);
Ret,用于結(jié)構(gòu)體有返回結(jié)果;
LogResult:用于日志結(jié)果;
TriggerParam:用于執(zhí)行參數(shù);
RegistryParam:用于注冊(cè)參數(shù);
callbackParam:用于回調(diào)參數(shù)。
4.根據(jù)權(quán)利要求1-3中任一所述的基于go語(yǔ)言定時(shí)任務(wù)異步執(zhí)行的實(shí)現(xiàn)方法,其特征在于,所述執(zhí)行器包括,
注冊(cè)模塊,用于通過(guò)執(zhí)行器使用RPC調(diào)用調(diào)度器的方法,將自己注冊(cè)到調(diào)度中心,調(diào)度中心定時(shí)發(fā)送RPC調(diào)用到執(zhí)行器來(lái)進(jìn)行心跳檢測(cè);
調(diào)度模塊,用于通過(guò)調(diào)度器遠(yuǎn)程調(diào)用run方法、在參數(shù)中有handler的name,將請(qǐng)求分發(fā)到handler是執(zhí)行器內(nèi)部邏輯實(shí)現(xiàn)的,執(zhí)行器將請(qǐng)求放入線程池當(dāng)中,異步執(zhí)行任務(wù);
日志服務(wù)模塊,用于通過(guò)XXL-JOB的調(diào)度中心封裝日志類XxlJobLogger,將log輸出到文件當(dāng)中;調(diào)度器獲取日志時(shí),調(diào)用RPC方法log,RPC方法從讀取文件并返回;
結(jié)果回調(diào)模塊,用于通過(guò)執(zhí)行器調(diào)用RPC方法callback,將執(zhí)行結(jié)果發(fā)送給調(diào)度器。
5.根據(jù)權(quán)利要求4所述的基于go語(yǔ)言定時(shí)任務(wù)異步執(zhí)行的實(shí)現(xiàn)方法,其特征在于,所述結(jié)果回調(diào)模塊的工作過(guò)程如下:
(1)、執(zhí)行器通過(guò)調(diào)用注冊(cè)方法,將自身pod的ip以及需要監(jiān)聽的端口注冊(cè)到調(diào)度中心,通過(guò)rpc通信將配置文件中的注冊(cè)參數(shù)發(fā)送到調(diào)度中心;
(2)、將注冊(cè)方法放在線程中運(yùn)行,以免影響主程序執(zhí)行;
(3)、注冊(cè)完成后,同時(shí)啟動(dòng)結(jié)果回調(diào)線程和日志清理線程,結(jié)果回調(diào)callback方法,即通過(guò)rpc方法將定時(shí)任務(wù)執(zhí)行的結(jié)果回調(diào)給調(diào)度中心;其中,日志清理線程本身是一個(gè)定時(shí)任務(wù),通過(guò)配置或者調(diào)度中心調(diào)控,清理歷史定時(shí)任務(wù)執(zhí)行留下的日志。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于浪潮云信息技術(shù)股份公司,未經(jīng)浪潮云信息技術(shù)股份公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011170480.8/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 自動(dòng)檢測(cè)文件中搭配錯(cuò)誤的系統(tǒng)和方法
- 網(wǎng)絡(luò)連接裝置及網(wǎng)絡(luò)連接裝置的語(yǔ)言環(huán)境設(shè)定方法
- 一種口語(yǔ)評(píng)測(cè)方法及裝置
- 一種語(yǔ)言設(shè)置方法及移動(dòng)終端
- 一種語(yǔ)言文本加載方法和裝置
- 一種語(yǔ)言交流人工智能系統(tǒng)及其語(yǔ)言處理方法
- 語(yǔ)言序列標(biāo)注方法、裝置存儲(chǔ)介質(zhì)及計(jì)算機(jī)設(shè)備
- 一種基于語(yǔ)言包實(shí)現(xiàn)繼電保護(hù)裝置多語(yǔ)言版本方法及裝置
- 一種應(yīng)用軟件的多語(yǔ)言核對(duì)方法及系統(tǒng)
- 多語(yǔ)言字幕顯示方法、裝置、終端設(shè)備及存儲(chǔ)介質(zhì)





