本發(fā)明涉及分布式調(diào)度,尤其涉及一種分布式集成任務(wù)的執(zhí)行方法、裝置、設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、在軟件開發(fā)領(lǐng)域中,持續(xù)集成是一種將代碼頻繁集成到共享存儲庫中的實踐,其執(zhí)行策略影響著軟件開發(fā)的效率。
2、相關(guān)技術(shù)中,傳統(tǒng)的持續(xù)集成系統(tǒng)往往定時觸發(fā)給執(zhí)行器,任務(wù)于執(zhí)行器之間的分配是隨機(jī)的,這種情況下有一些時間相關(guān)性比較強(qiáng)的任務(wù)處理效率低下,例如git任務(wù)用于將代碼拉取到執(zhí)行器上,maven任務(wù)要將代碼打包,如果分別為這兩類任務(wù)分配兩個執(zhí)行器,maven任務(wù)在尋找代碼的過程中效率低下,導(dǎo)致并行執(zhí)行效果較差。
3、綜合以上該技術(shù)領(lǐng)域發(fā)展?fàn)顩r分析,現(xiàn)有的技術(shù)中方案缺少將完整的分布式集成任務(wù)切分,將相同任務(wù)類型的子任務(wù)分配給同一個執(zhí)行器的方案。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的在于提供一種分布式集成任務(wù)的執(zhí)行方法、裝置、設(shè)備及存儲介質(zhì),旨在解決現(xiàn)有技術(shù)中的上述問題。
2、根據(jù)本發(fā)明實施例的第一方面,提供一種分布式集成任務(wù)的執(zhí)行方法,包括:
3、步驟1,定義分布式集成任務(wù),將分布式集成任務(wù)中各個任務(wù)節(jié)點抽象為組件,基于組件生成完整的工作流圖;
4、步驟2,通過調(diào)度器識別工作流圖各組件的前置依賴,并生成將相同任務(wù)類型的組件分配給同一執(zhí)行器的組件分配表;
5、步驟3,在當(dāng)前執(zhí)行批次中,通過調(diào)度器獲取前置依賴處理完畢或沒有前置依賴的所有組件,形成待執(zhí)行序列,將待執(zhí)行序列推入調(diào)度隊列;
6、步驟4,基于組件分配表中的分配規(guī)則,將待執(zhí)行序列中各組件從調(diào)度隊列調(diào)度至對應(yīng)的執(zhí)行器;
7、步驟5,通過各執(zhí)行器執(zhí)行組件對應(yīng)的任務(wù);
8、步驟6,重復(fù)執(zhí)行步驟3至步驟5,直到所有任務(wù)節(jié)點都執(zhí)行完畢。
9、根據(jù)本發(fā)明實施例的第二方面,提供一種分布式集成任務(wù)的執(zhí)行裝置,包括:
10、預(yù)處理模塊,用于定義分布式集成任務(wù),將分布式集成任務(wù)中各個任務(wù)節(jié)點抽象為組件,基于組件生成完整的工作流圖;
11、調(diào)度器,用于識別工作流圖各組件的前置依賴,并生成將相同任務(wù)類型的組件分配給同一執(zhí)行器的組件分配表;在當(dāng)前執(zhí)行批次中,獲取前置依賴處理完畢或沒有前置依賴的所有組件,形成待執(zhí)行序列,將待執(zhí)行序列推入調(diào)度隊列;
12、分配模塊,用于基于組件分配表中的分配規(guī)則,將待執(zhí)行序列中各組件調(diào)度至對應(yīng)的執(zhí)行器;
13、執(zhí)行器,用于執(zhí)行組件對應(yīng)的任務(wù)。
14、根據(jù)本發(fā)明實施例的第三方面,提供一種電子設(shè)備,包括:存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機(jī)程序,該計算機(jī)程序被處理器執(zhí)行時實現(xiàn)如本公開第一方面所提供的分布式集成任務(wù)的執(zhí)行方法的步驟。
15、根據(jù)本發(fā)明實施例的第四方面,提供一種計算機(jī)可讀存儲介質(zhì),其上存儲有信息傳遞的實現(xiàn)程序,該程序被處理器執(zhí)行時實現(xiàn)本公開第一方面所提供的分布式集成任務(wù)的執(zhí)行方法的步驟。
16、本發(fā)明實施例提供的技術(shù)方案包括以下有益效果:將分布式基成任務(wù)切分為各個任務(wù)節(jié)點,將相同任務(wù)類型的任務(wù)節(jié)點分配給同一執(zhí)行器,分配至同一執(zhí)行器內(nèi)的各個任務(wù)節(jié)點之間相關(guān)性較強(qiáng),后執(zhí)行節(jié)點可在前面執(zhí)行完畢結(jié)果的基礎(chǔ)上直接執(zhí)行任務(wù),不需要額外從其它執(zhí)行器上獲取數(shù)據(jù),提升了分布式集成任務(wù)的并行效率。
17、應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
1.一種分布式集成任務(wù)的執(zhí)行方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過調(diào)度器識別所述工作流圖各組件的前置依賴具體包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過調(diào)度器獲取所述前置依賴處理完畢或沒有前置依賴的所有組件,形成待執(zhí)行序列具體包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述待執(zhí)行序列中各組件從調(diào)度隊列調(diào)度至對應(yīng)的執(zhí)行器具體包括:采用輪詢執(zhí)行器方式將待執(zhí)行序列中各組件從調(diào)度隊列調(diào)度至對應(yīng)的執(zhí)行器。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述采用輪詢執(zhí)行器方式將待執(zhí)行序列中各組件從調(diào)度隊列調(diào)度至對應(yīng)的執(zhí)行器具體包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過各執(zhí)行器執(zhí)行組件對應(yīng)的任務(wù)具體包括:當(dāng)執(zhí)行器獲取到對應(yīng)的組件時,執(zhí)行該組件對應(yīng)的任務(wù),執(zhí)行結(jié)束后將執(zhí)行結(jié)果存儲到該執(zhí)行器內(nèi)。
7.一種分布式集成任務(wù)的執(zhí)行裝置,其特征在于,包括:
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置進(jìn)一步包括:
9.一種電子設(shè)備,其特征在于,包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機(jī)程序,所述計算機(jī)程序被所述處理器執(zhí)行時實現(xiàn)如權(quán)利要求1至6中任一項所述的分布式集成任務(wù)的執(zhí)行方法的步驟。
10.一種計算機(jī)可讀存儲介質(zhì),其特征在于,所述計算機(jī)可讀存儲介質(zhì)上存儲有信息傳遞的實現(xiàn)程序,所述程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1至6中任一項所述的分布式集成任務(wù)的執(zhí)行方法的步驟。