[發(fā)明專利]一種分布式動(dòng)態(tài)定時(shí)任務(wù)調(diào)度方法有效
| 申請(qǐng)?zhí)枺?/td> | 202011574500.8 | 申請(qǐng)日: | 2020-12-28 |
| 公開(kāi)(公告)號(hào): | CN112416563B | 公開(kāi)(公告)日: | 2021-12-17 |
| 發(fā)明(設(shè)計(jì))人: | 陳本康;馮凱;王元卓;李宗尚 | 申請(qǐng)(專利權(quán))人: | 中科院計(jì)算技術(shù)研究所大數(shù)據(jù)研究院 |
| 主分類號(hào): | G06F9/48 | 分類號(hào): | G06F9/48;G06F9/50;G06F9/54 |
| 代理公司: | 鄭州明華專利代理事務(wù)所(普通合伙) 41162 | 代理人: | 高麗華 |
| 地址: | 450000 河南省鄭州*** | 國(guó)省代碼: | 河南;41 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 分布式 動(dòng)態(tài) 定時(shí) 任務(wù) 調(diào)度 方法 | ||
1.一種分布式動(dòng)態(tài)定時(shí)任務(wù)調(diào)度方法,其特征在于:借助于Spring框架的SchedulingConfigurer接口來(lái)實(shí)現(xiàn),包括如下步驟:
步驟1,啟動(dòng)系統(tǒng),對(duì)當(dāng)前系統(tǒng)每個(gè)實(shí)例的注冊(cè),然后將啟動(dòng)狀態(tài)下的任務(wù)分布到不同的實(shí)例上;
步驟2:創(chuàng)建并啟動(dòng)定時(shí)任務(wù)
首先在前端web界面配置任務(wù)的基本信息,基礎(chǔ)信息包括任務(wù)名稱、任務(wù)的簡(jiǎn)單描述和調(diào)度任務(wù)類型;任務(wù)配置完畢后保存,此時(shí)前端會(huì)調(diào)用后端接口創(chuàng)建任務(wù),接口通過(guò)對(duì)應(yīng)的負(fù)載均衡策略將創(chuàng)建的任務(wù)負(fù)載到對(duì)應(yīng)的實(shí)例上,任務(wù)啟動(dòng)完成后,將任務(wù)相關(guān)的信息持久化保存到數(shù)據(jù)庫(kù)中的task_info表中;
步驟3:任務(wù)的修改
任務(wù)的修改包括周期任務(wù)的啟動(dòng)、停止與調(diào)度周期的修改,用戶在前端界面做出修改后,點(diǎn)擊修改按鈕會(huì)通過(guò)消息總線發(fā)出一條任務(wù)被修改的消息,并將該消息發(fā)送給后端的每一個(gè)實(shí)例上,實(shí)例收到消息后,根據(jù)消息類型做出以下動(dòng)作;
如果是啟動(dòng)任務(wù)的消息,按照步驟2中的邏輯,將任務(wù)運(yùn)行到某個(gè)實(shí)例上;
如果是停止任務(wù)的消息,首先查詢?cè)搶?shí)例的任務(wù)調(diào)度隊(duì)列是否存在對(duì)應(yīng)的任務(wù),如果沒(méi)有,對(duì)應(yīng)的任務(wù)則不做處理,如果有,對(duì)應(yīng)的任務(wù)首先從該實(shí)例的任務(wù)調(diào)度隊(duì)列中取出對(duì)應(yīng)的任務(wù),將其刪除,并修改數(shù)據(jù)庫(kù)中task_info表的狀態(tài)為停止?fàn)顟B(tài);
如果是任務(wù)的調(diào)度周期發(fā)生改變,首先判斷該任務(wù)是否運(yùn)行在當(dāng)前實(shí)例上,如果不在該實(shí)例不做任務(wù)處理,如果在則首先從該實(shí)例任務(wù)調(diào)度隊(duì)列中取出該任務(wù),基于新的調(diào)度方案重新注冊(cè)任務(wù),將其重新加到任務(wù)調(diào)度隊(duì)列中,并修改task_info表中任務(wù)的對(duì)應(yīng)信息;
步驟4:任務(wù)的監(jiān)控
任務(wù)每次運(yùn)行后,將任務(wù)的運(yùn)行過(guò)程中產(chǎn)生的信息以及最終的結(jié)果,寫(xiě)入到monitor_info表中。
2.根據(jù)權(quán)利要求1中所述的分布式動(dòng)態(tài)定時(shí)任務(wù)調(diào)度方法,其特征在于:在步驟1中,對(duì)每個(gè)實(shí)例進(jìn)行注冊(cè)時(shí),將實(shí)例所運(yùn)行的機(jī)器信息存入數(shù)據(jù)庫(kù)中的service_info表中,機(jī)器信息包括主機(jī)名、ip地址和該實(shí)例是否已經(jīng)啟動(dòng)完成;service_info表相當(dāng)于服務(wù)的注冊(cè)中心;啟動(dòng)后系統(tǒng)中每個(gè)實(shí)例會(huì)循環(huán)等待是否所有的實(shí)例都已經(jīng)完成上述注冊(cè)操作,如果沒(méi)有則循環(huán)等待,直到所有的實(shí)例都已經(jīng)完成注冊(cè)信息后,然后開(kāi)始將處于啟動(dòng)狀態(tài)的任務(wù)分發(fā)到不同的運(yùn)行實(shí)例上。
3.根據(jù)權(quán)利要求2中所述的分布式動(dòng)態(tài)定時(shí)任務(wù)調(diào)度方法,其特征在于:在步驟1中,在任務(wù)分布到不同的實(shí)例的過(guò)程中,首先對(duì)所有的實(shí)例進(jìn)行按主機(jī)名排序后進(jìn)行編號(hào),然后讀取task_info表加載所有的處于調(diào)度狀態(tài)的任務(wù),根據(jù)輪訓(xùn)算法,將任務(wù)依次分發(fā)到不同的實(shí)例上,然后在每個(gè)實(shí)例上啟動(dòng)對(duì)應(yīng)的調(diào)度。
4.根據(jù)權(quán)利要求1中所述的分布式動(dòng)態(tài)定時(shí)任務(wù)調(diào)度方法,其特征在于:在步驟2中,所述任務(wù)類型包括周期型的任務(wù)、單次任務(wù)和單次定時(shí)任務(wù);
后端服務(wù)收到創(chuàng)建任務(wù)的請(qǐng)求后,便會(huì)啟動(dòng)對(duì)應(yīng)的任務(wù);根據(jù)不同的任務(wù)類型,啟動(dòng)任務(wù)的流程會(huì)有不同的邏輯;
對(duì)于是期型的任務(wù),根據(jù)配置的調(diào)度周期生成定時(shí)任務(wù)通用的cron表達(dá)式,組裝任務(wù)信息,通過(guò)Spring框架ScheduledTaskRegistrar類提供的方法將注冊(cè)相關(guān)任務(wù)得到ScheduledFuture對(duì)象,然后將其放到任務(wù)調(diào)度的隊(duì)列中,等到達(dá)指定時(shí)間便開(kāi)始執(zhí)行任務(wù);
對(duì)于單次任務(wù)邏輯,直接新建一個(gè)線程執(zhí)行對(duì)應(yīng)的邏輯;
對(duì)于單次定時(shí)任務(wù),借助與java的Timer類與TimerTask對(duì)象來(lái)實(shí)現(xiàn)指定時(shí)間啟動(dòng)對(duì)應(yīng)的執(zhí)行線程。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中科院計(jì)算技術(shù)研究所大數(shù)據(jù)研究院,未經(jīng)中科院計(jì)算技術(shù)研究所大數(shù)據(jù)研究院許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011574500.8/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 上一篇:一種穴盤(pán)式氣泡膜
- 下一篇:一種野外使用帶坐墊保溫杯
- 動(dòng)態(tài)矢量譯碼方法和動(dòng)態(tài)矢量譯碼裝置
- 動(dòng)態(tài)口令的顯示方法及動(dòng)態(tài)令牌
- 動(dòng)態(tài)庫(kù)管理方法和裝置
- 動(dòng)態(tài)令牌的身份認(rèn)證方法及裝置
- 令牌、動(dòng)態(tài)口令生成方法、動(dòng)態(tài)口令認(rèn)證方法及系統(tǒng)
- 一種動(dòng)態(tài)模糊控制系統(tǒng)
- 一種基于動(dòng)態(tài)信號(hào)的POS機(jī)和安全保護(hù)方法
- 圖像動(dòng)態(tài)展示的方法、裝置、系統(tǒng)及介質(zhì)
- 一種基于POS機(jī)聚合碼功能分離顯示動(dòng)態(tài)聚合碼的系統(tǒng)
- 基于動(dòng)態(tài)口令的身份認(rèn)證方法、裝置和動(dòng)態(tài)令牌
- 任務(wù)協(xié)作裝置及方法
- 用于量化任務(wù)價(jià)值的任務(wù)管理方法及裝置
- 用于運(yùn)行任務(wù)的系統(tǒng)、方法和裝置
- 一種分布式任務(wù)調(diào)度系統(tǒng)及方法
- 任務(wù)信息處理方法
- 一種同步任務(wù)異步執(zhí)行的方法和調(diào)度系統(tǒng)
- 數(shù)據(jù)處理方法、裝置、電子設(shè)備及計(jì)算機(jī)可讀介質(zhì)
- 一種自動(dòng)分配和推送的任務(wù)管理平臺(tái)及方法
- 程序執(zhí)行控制的裝置及方法、終端和存儲(chǔ)介質(zhì)
- 基于會(huì)話的任務(wù)待辦方法、系統(tǒng)、電子設(shè)備及存儲(chǔ)介質(zhì)





