TW202242643A - 任務調度方法、裝置及電腦可讀存儲介質 - Google Patents
任務調度方法、裝置及電腦可讀存儲介質 Download PDFInfo
- Publication number
- TW202242643A TW202242643A TW111107056A TW111107056A TW202242643A TW 202242643 A TW202242643 A TW 202242643A TW 111107056 A TW111107056 A TW 111107056A TW 111107056 A TW111107056 A TW 111107056A TW 202242643 A TW202242643 A TW 202242643A
- Authority
- TW
- Taiwan
- Prior art keywords
- execution
- dependency
- task
- subtasks
- stage
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Hardware Redundancy (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本發明提供了一種任務調度方法、裝置、系統及電腦可讀存儲介質,該方法包括:將待調度的調度任務拆分為多個子任務,,將多個子任務編排為多個階段,並配置多個子任務之間的任務依賴關係和多個階段之間的階段依賴關係;回應於當前階段的執行指令,獲取當前階段的全部子任務,將滿足預設執行條件的待執行子任務下發到執行節點,其中,預設執行條件根據階段依賴關係、任務依賴關係以及任務執行狀態確定;並根據執行節點回饋的執行結果更新待執行子任務的執行狀態。利用上述方法,能夠更有效地管理調度任務的多個子任務的執行流程,更滿足各種複雜業務場景下的任務調度,有效提升任務調度性能。
Description
本發明屬於電腦領域,具體涉及一種任務調度方法、裝置及電腦可讀存儲介質。
本部分旨在為申請專利範圍中陳述的本發明的實施方式提供背景或上下文。此處的描述不因為包括在本部分中就承認是現有技術。
分散式、微服務應用場景下,可以將複雜的調度任務拆分成多個子任務,並將各個子任務下發到不同的節點中執行以提高調度效率。然而,由於受業務流程和部署資源限制,拆分調度任務得到的多個子任務之間的執行先後順序、任務調度管理以及高效執行存在複雜度高、難度大等問題。
針對上述現有技術中存在的問題,提出了一種任務調度方法、裝置及電腦可讀存儲介質,利用這種方法、裝置及電腦可讀存儲介質,能夠解決上述問題。
本發明提供了以下方案。
第一方面,提供一種任務調度方法,包括:將待調度的調度任務拆分為多個子任務,將多個子任務編排為多個階段,並配置多個子任務之間的任務依賴關係和多個階段之間的階段依賴關係;回應於當前階段的執行指令,獲取當前階段的全部子任務,將滿足預設執行條件的待執行子任務下發到執行節點,其中,預設執行條件根據階段依賴關係、任務依賴關係以及任務執行狀態確定;並根據執行節點回饋的執行結果更新待執行子任務的執行狀態。
在一種可能的實施方式中,方法還包括:監控任務執行狀態;以及,當監控到當前階段的前一階段的全部子任務均執行完成時,生成當前階段的執行指令;和/或,當監控到當前階段的全部子任務均執行完成時,生成後續階段的執行指令。
在一種可能的實施方式中,對多個子任務進行分階段編排,還包括:對階段中的多個子任務進行分組編排,得到階段的多個任務分組;以及,當當前階段包含多個任務分組時,並存執行當前階段的多個任務分組。
在一種可能的實施方式中,還包括基於負載均衡策略將滿足預設執行條件的待執行子任務下發到執行節點,具體包括:預先配置每個子任務的預期負載、每個執行節點的負載閾值;當前階段執行時,確定待執行子任務的預期負載,並計算每個執行節點的當前負載;根據每個執行節點的負載閾值和當前負載,和待執行子任務的預期負載確定待執行子任務的可用節點列表;以及,將待執行子任務下發至可用節點清單中負載率最低的執行節點。
在一種可能的實施方式中,任務執行狀態至少包括子任務的執行狀態,子任務的執行狀態包括:待執行、執行中、成功、失敗、終止、異常。
在一種可能的實施方式中,階段依賴關係和任務依賴關係的依賴關係類型包括:強依賴、弱依賴和無依賴;其中,每種依賴關係類型和一個或多個子任務的執行狀態具有預設映射關係。
在一種可能的實施方式中,當前階段基於配置的階段依賴關係而依賴於前繼階段;其中,若階段依賴關係為強依賴,當前階段依賴於前繼階段全部子任務均執行成功;若階段依賴關係為弱依賴,當前階段依賴於前繼階段全部子任務均執行無異常;若階段依賴關係為無依賴,當前階段的開始執行不依賴前繼階段的子任務的執行狀態。
在一種可能的實施方式中,待執行子任務基於配置的任務依賴關係而依賴於至少一個指定子任務,任務依賴關係包括:強依賴、弱依賴和無依賴中的一種;其中,若任務依賴關係為強依賴,待執行子任務依賴於至少一個指定子任務均執行成功;若任務依賴關係為弱依賴,待執行子任務依賴於至少一個指定子任務執行成功或失敗;若任務依賴關係為無依賴,待執行子任務依賴於至少一個指定子任務執行成功、失敗、終止或異常。
在一種可能的實施方式中,方法還包括判斷是否滿足執行條件,具體包括:若當前階段的階段依賴關係為強依賴或弱依賴,判斷當前階段是否滿足預設執行條件,若不滿足則置當前階段的全部子任務的執行狀態為異常,若滿足則利用負載均衡策略依次下發當前階段的全部子任務並更新下發後的子任務的執行狀態為執行中。
在一種可能的實施方式中,方法還包括判斷是否滿足執行條件,具體包括:若當前階段的階段依賴關係為無依賴,則判斷當前階段的每個子任務是否滿足預設執行條件,若不滿足則置子任務的執行狀態為異常,若滿足則下發子任務,並更新下發後的子任務的執行狀態為執行中。
在一種可能的實施方式中,方法還包括預先配置多個配置資訊,配置資訊包括以下中的一種或多種:調度任務的調度任務標識;每個子任務的以下一種或多種配置項:所屬調度任務的調度任務標識、所屬階段的階段標識、所屬階段的階段依賴關係、所屬任務分組的分組標識、子任務標識、任務依賴關係、預期負載、超時時間、執行模組標識;執行模組的以下一種或多種配置項:執行節點標識、執行節點的負載閾值、執行節點列表。
第二方面,提供一種任務調度裝置,包括:配置模組,用於將待調度的調度任務拆分為多個子任務,將多個子任務編排為多個階段,並配置多個子任務之間的任務依賴關係和多個階段之間的階段依賴關係;調度模組,用於回應於當前階段的執行指令,獲取當前階段的全部子任務,將滿足預設執行條件的待執行子任務下發到執行節點,其中,預設執行條件根據階段依賴關係、任務依賴關係以及任務執行狀態確定;並根據執行節點回饋的執行結果更新待執行子任務的執行狀態。
在一種可能的實施方式中,裝置還包括監控模組,用於:監控任務執行狀態;以及,當監控到當前階段的前一階段的全部子任務均執行完成時,生成當前階段的執行指令;和/或,當監控到當前階段的全部子任務均執行完成時,生成後續階段的執行指令。
在一種可能的實施方式中,配置模組還用於:對階段中的多個子任務進行分組編排,得到階段的多個任務分組;以及,當當前階段包含多個任務分組時,並存執行當前階段的多個任務分組。
在一種可能的實施方式中,調度模組還用於基於負載均衡策略將滿足預設執行條件的待執行子任務下發到執行節點,具體用於:預先配置每個子任務的預期負載、每個執行節點的負載閾值;當前階段執行時,確定待執行子任務的預期負載,並計算每個執行節點的當前負載;根據每個執行節點的負載閾值和當前負載,和待執行子任務的預期負載確定待執行子任務的可用節點列表;以及,將待執行子任務下發至可用節點清單中負載率最低的執行節點。
在一種可能的實施方式中,任務執行狀態至少包括子任務的執行狀態,子任務的執行狀態包括:待執行、執行中、成功、失敗、終止、異常。
在一種可能的實施方式中,階段依賴關係和任務依賴關係的依賴關係類型包括:強依賴、弱依賴和無依賴;其中,每種依賴關係類型和一個或多個子任務的執行狀態具有預設映射關係。
在一種可能的實施方式中,當前階段基於配置的階段依賴關係而依賴於前繼階段;其中,若階段依賴關係為強依賴,當前階段依賴於前繼階段全部子任務均執行成功;若階段依賴關係為弱依賴,當前階段依賴於前繼階段全部子任務均執行無異常;若階段依賴關係為無依賴,當前階段的開始執行不依賴前繼階段的子任務的執行狀態。
在一種可能的實施方式中,待執行子任務基於配置的任務依賴關係而依賴於至少一個指定子任務,任務依賴關係包括:強依賴、弱依賴和無依賴中的一種;其中,若任務依賴關係為強依賴,待執行子任務依賴於至少一個指定子任務均執行成功;若任務依賴關係為弱依賴,待執行子任務依賴於至少一個指定子任務執行成功或失敗;若任務依賴關係為無依賴,待執行子任務依賴於至少一個指定子任務執行成功、失敗、終止或異常。
在一種可能的實施方式中,裝置還包括判斷是否滿足執行條件,具體包括:若當前階段的階段依賴關係為強依賴或弱依賴,判斷當前階段是否滿足預設執行條件,若不滿足則置當前階段的全部子任務的執行狀態為異常,若滿足則利用負載均衡策略依次下發當前階段的全部子任務並更新下發後的子任務的執行狀態為執行中。
在一種可能的實施方式中,裝置還包括判斷是否滿足執行條件,具體包括:若當前階段的階段依賴關係為無依賴,則判斷當前階段的每個子任務是否滿足預設執行條件,若不滿足則置子任務的執行狀態為異常,若滿足則下發子任務,並更新下發後的子任務的執行狀態為執行中。
在一種可能的實施方式中,配置模組還用於預先配置多個配置資訊,配置資訊包括以下中的一種或多種:調度任務的調度任務標識;每個子任務的以下一種或多種配置項:所屬調度任務的調度任務標識、所屬階段的階段標識、所屬階段的階段依賴關係、所屬任務分組的分組標識、子任務標識、任務依賴關係、預期負載、超時時間、執行模組標識;執行模組的以下一種或多種配置項:執行節點標識、執行節點的負載閾值、執行節點列表。
第三方面,提供一種任務調度裝置,其特徵在於,包括:至少一個處理器;以及,與至少一個處理器通信連接的記憶體;其中,記憶體存儲有可被至少一個處理器執行的指令,指令被至少一個處理器執行,以使至少一個處理器能夠執行:如請求項1-11項中任一項所述的方法。
第四方面,提供一種電腦可讀存儲介質,電腦可讀存儲介質存儲有程式,當程式被多核處理器執行時,使得多核處理器執行如請求項1-11項中任一項所述的方法。
本申請實施例採用的上述至少一個技術方案能夠達到以下有益效果:通過將調度任務拆分為多個子任務、將多個子任務分階段編排成有序執行的多個階段,以及通過綜合維護子任務之間的任務依賴關係和階段之間的階段依賴關係,能夠更有效地管理調度任務的多個子任務的執行流程,更滿足各種複雜業務場景下的任務調度,有效提升任務調度性能。
應當理解,上述說明僅是本發明技術方案的概述,以便能夠更清楚地瞭解本發明的技術手段,從而可依照說明書的內容予以實施。為了讓本發明的上述和其它目的、特徵和優點能夠更明顯易懂,以下特舉例說明本發明的具體實施方式。
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這裡闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,並且能夠將本公開的範圍完整的傳達給本領域的技術人員。
在本申請實施例的描述中,應理解,諸如“包括”或“具有”等術語旨在指示本說明書中所公開的特徵、數位、步驟、行為、部件、部分或其組合的存在,並且不旨在排除一個或多個其他特徵、數位、步驟、行為、部件、部分或其組合存在的可能性。
除非另有說明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”僅僅是一種描述關聯物件的關聯關係,表示可以存在三種關係,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。
術語“第一”、“第二”等僅用於描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特徵的數量。由此,限定有“第一”、“第二”等的特徵可以明示或者隱含地包括一個或者更多個該特徵。在本申請實施例的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。
另外還需要說明的是,在不衝突的情況下,本發明中的實施例及實施例中的特徵可以相互組合。下面將參考附圖並結合實施例來詳細說明本發明。
圖1為根據本申請一實施例的任務調度方法的流程示意圖,用於調度執行複雜任務,在該流程中,從設備角度而言,執行主體可以是一個或者多個電子設備;從程式角度而言,執行主體相應地可以是搭載於這些電子設備上的程式。
如圖1所示,本實施例提供的方法可以包括以下步驟:
S101、將待調度的調度任務拆分為多個子任務,將多個子任務編排為多個階段;
一個示例中,參考圖2,示出了一種對調度任務進行分階段編排的示意圖,將待調度的調度任務拆分為多個子任務,並將多個子任務編排為了n個階段,每個階段中包括若干個子任務,可以按階段執行每個階段中的子任務。可選地,可以根據拆分出的多個子任務之間的關聯關係進行該編排,比如具有時間關聯關係的兩個或以上子任務分別編排到不同的階段中,每個階段包括的若干個子任務之間不具有上述關聯關係。
S102、配置多個子任務之間的任務依賴關係和多個階段之間的階段依賴關係;
具體可以根據任務執行狀態配置多個子任務之間、多個階段之間的依賴關係。任務執行狀態主要可以包含調度/子任務執行狀態。
任務依賴關係用於指示子任務之間的依賴關係,換言之,某個子任務的開始執行需要依賴於另一個或多個子任務的執行狀態。例如,第一子任務的開始執行可以依賴於第二子任務執行成功/失敗。又例如,第三子任務的開始執行可以依賴於第四子任務的未執行狀態,諸如此類。
階段依賴關係用於指示階段之間的依賴關係,換言之,某個階段的開始執行需要依賴於另一個或多個階段中全部子任務的執行狀態。例如,第一階段的開始執行可以依賴於第二階段的全部子任務均執行成功/失敗,又例如,第三階段的開始執行可以依賴於第四階段的全部子任務均執行成功且第五階段的全部子任務均未執行,諸如此類,本申請對此不作具體限制。
S103、回應於當前階段的執行指令,獲取當前階段的全部子任務,將滿足預設執行條件的待執行子任務下發到執行節點,
具體地,預設執行條件可以根據階段依賴關係、任務依賴關係以及任務執行狀態確定。
仍參考圖2,假設當前階段為階段2,此時獲取階段2中的全部子任務:子任務2-1-1、子任務2-2-2,…,子任務2-1-
,判斷每個子任務是否滿足預設執行條件,該預設執行條件可以包括當前階段的階段執行條件和每個子任務的任務執行條件。舉例來說,可以先判斷當前階段是否滿足基於階段依賴關係和任務執行狀態確定的階段執行條件,再進一步判斷當前階段的每個子任務是否滿足基於任務依賴關係和任務執行狀態確定的任務執行條件,若均滿足,則認為該子任務滿足該預設執行條件,可以依據負載均衡策略下發到執行節點,並將子任務執行狀態更新為執行中。否則,則認為該子任務不滿足預設執行條件,可以將子任務執行狀態更新為異常。
S104、根據執行節點回饋的執行結果更新待執行子任務的執行狀態。
具體地,該執行節點回饋的執行結果可以是指示該待執行子任務執行成功/失敗/終止/異常。
可以理解,上述S101-S102為執行調度任務之前的配置工作,S103-S104為具體執行該調度任務的每個當前階段的調度工作。例如,依據上述S101-S102可以配置出如圖2所示出的任務編排結果,並相應配置階段依賴關係和任務依賴關係,在實際執行時,可以循序執行圖2中的階段1-階段n,其中每個階段作為當前階段時均執行上述S103-S104的工作,直至階段n執行結束。
在本實施例中,通過將調度任務拆分為多個子任務、將多個子任務分階段編排成有序執行的多個階段,以及通過綜合維護子任務之間的任務依賴關係和階段之間的階段依賴關係,能夠更有效地管理調度任務的多個子任務的執行流程,更滿足各種複雜業務場景下的任務調度,有效提升任務調度性能。
在一些可能的實施方式中,子任務的執行狀態可以包括:待執行、執行中、成功、失敗、終止、異常等多種執行狀態。例如,針對任意一個子任務,在其未執行時的執行狀態為“待執行”、在其已經成功分發到執行節點之後的執行狀態為“執行中”,在其已被執行節點成功執行之後的執行狀態為“成功”,在其已被執行節點執行失敗之後的執行狀態為“失敗”,在其已被執行節點終止執行之後的執行狀態為“終止”,在其發生若干種異常情況之一後的執行狀態為“異常”,可以理解的是,根據實際的任務場景,當然還可以設置其他的執行狀態,而不僅限於上述所列舉的執行狀態。本實施例中,通過採用設置上述多種執行狀態,相較於傳統方案中僅設置“已執行”和“未執行”具有更為精細化的狀態管理方案。
一個示例中,表1給出一種精細化的子任務狀態機。
表1:
狀態 | 含義 |
待執行 | 子任務待下發執行 |
執行中 | 子任務完成下發,正在執行 |
成功 | 執行節點回饋子任務執行成功 |
失敗 | 執行節點回饋子任務執行失敗 |
終止 | 對執行中任務發起終止,且執行節點回饋終止成功 |
異常 | 執行節點回饋子任務執行異常、執行節點超時未回饋執行結果、子任務下發時發生通信異常、子任務下發時無可用執行節點、不滿足執行條件等各種異常場景 |
在一些可能的實施方式中,調度任務的執行狀態可以包括初始和執行。
表2給出一種調度任務狀態機,其中,調度任務執行時,記錄調度任務的調度任務執行狀態標識為“執行”、執行階段標識為當前在執行的階段標識;子任務執行狀態標識為當前該子任務的執行狀態、子任務執行節點為當前執行該子任務的執行節點資訊;任務結束後,記錄調度任務執行狀態標識為“初始”。
表2:
[001] 狀態 | [002] 含義 |
[003] 初始 | [004] 調度任務未執行 |
[005] 執行 | [006] 調度任務處於執行狀態 |
在一些可能的實施方式中,為了進一步精細化該調度方法,階段依賴關係和任務依賴關係的依賴關係類型可以包括:強依賴、弱依賴和無依賴。每種依賴關係類型和一個或多個子任務的執行狀態具有預設映射關係。
表3給出一種依賴關係和狀態機的映射關係表,根據上述子任務狀態機,可以細化階段與階段之間的階段依賴關係、子任務與子任務之間的任務依賴關係,依賴關係可以包含:強依賴、弱依賴、無依賴。
表3:
[007] 依賴關係 | [008] 滿足關係的狀態清單 |
[009] 強依賴 | [010] 成功 |
[011] 弱依賴 | [012] 成功、失敗 |
[013] 無依賴 | [014] 成功、失敗、終止、異常 |
相比於現有的方案,本實施例可以提供更為精細的任務狀態管理(待執行、執行中、成功、失敗、終止、異常)和任務依賴關係管理(強依賴、弱依賴、無依賴)。可滿足各類業務場景的需求。
在一些可能的實施方式中,假設當前階段基於階段依賴關係而依賴於前繼階段,階段依賴關係可以是:強依賴、弱依賴和無依賴中的一種。更為具體地,若階段依賴關係為強依賴,當前階段依賴於前繼階段全部子任務均執行成功;若階段依賴關係為弱依賴,當前階段依賴於前繼階段全部子任務均執行無異常;若階段依賴關係為無依賴,當前階段的開始執行無需依賴前繼階段的子任務的執行狀態。
在一些可能的實施方式中,假設待執行子任務基於任務依賴關係而依賴於至少一個指定子任務,任務依賴關係為強依賴、弱依賴和無依賴中的一種。更為具體地,若任務依賴關係為強依賴,待執行子任務依賴於至少一個指定子任務均執行成功;若任務依賴關係為弱依賴,待執行子任務依賴於至少一個指定子任務執行成功或失敗;若任務依賴關係為無依賴,待執行子任務依賴於至少一個指定子任務執行成功、失敗、終止或異常。
在一些可能的實施方式中,在S103中,還可以判斷是否滿足執行條件,具體包括:
若當前階段的階段依賴關係為強依賴或弱依賴,判斷當前階段是否滿足預設執行條件,若不滿足則置當前階段的全部子任務的執行狀態為異常,若滿足則利用負載均衡策略依次下發當前階段的全部子任務並更新下發後的子任務的執行狀態為執行中。
若當前階段的階段依賴關係為無依賴,判斷當前階段的每個子任務是否滿足預設執行條件,若不滿足則置子任務的執行狀態為異常,若滿足則下發子任務,並更新下發後的子任務的執行狀態為執行中。
換言之,為了進一步降低判斷每個子任務是否可以執行的複雜度,可以採用下述方案:若當前階段的階段依賴關係為強依賴或弱依賴,則忽略配置的當前階段的每個子任務的任務依賴關係;若當前階段的階段依賴關係為無依賴,則支援配置的當前階段的每個子任務的任務依賴關係。
本實施例支援使用者分別配置階段依賴關係和子任務依賴關係。當某個階段的階段依賴關係為強依賴/弱依賴時,無需進一步驗證該階段中每個子任務是否滿足基於各自任務依賴關係的預設執行條件,而僅需驗證該階段是否滿足基於階段依賴關係的預設執行條件,若滿足,則可以直接下發該階段中的每個子任務。相反,若某個階段的階段依賴關係為無依賴時,則需要驗證該階段中每個子任務是否滿足基於各自任務依賴關係的預設執行條件,若滿足,則下發滿足預設執行條件的子任務,如果該階段中的某一個或多個子任務並未配置任務依賴關係則可默認其滿足預設執行條件。
一個示例中,參考圖2,階段n的階段依賴關係的類型為弱依賴,由此,當階段n滿足基於階段依賴關係的階段執行條件時,則執行階段n的全部子任務,否則將階段n的全部子任務的執行狀態更新為異常。階段2的階段依賴關係的類型為無依賴,由此可以進一步驗證階段2中任務2-1-2是否滿足基於其任務依賴關係的任務執行條件,任務2-1-2的任務依賴關係具體為:任務2-1-2依賴於子任務1-1-2且為強依賴,並且任務2-1-2依賴於子任務1-2-1且為弱依賴。因此,結合表3所示出的映射關係,只有當子任務1-1-2的執行狀態為成功時,且任務2-1-2的執行狀態為成功或失敗時,可以執行該任務2-1-2。針對階段2中的其他子任務,由於並未配置任務依賴關係,因此無需進一步執行驗證即可直接執行。
在一些可能的實施方式中,為監控當前所有正在執行任務的進度,進一步驅動任務流繼續向下執行或結束任務,可以監控任務執行狀態。當監控到當前階段的前一階段的全部子任務均執行完成時,生成當前階段的執行指令;和/或,當監控到當前階段的全部子任務均執行完成時,進一步判斷當前階段是否還有後續階段,若有,則生成後續階段的執行指令,若無,則結束任務。
在一些可能的實施方式中,為了對同一階段內的多個子任務進行併發執行,可以對多個子任務進行進一步的精細化編排,在S101中,還可以:對階段中的多個子任務進行分組編排,得到階段的多個任務分組;以及,當當前階段包含多個任務分組時,並存執行當前階段的多個任務分組。
一個示例中,仍參見圖2,其示出了一種精細化的分階段分組的任務調度的示意圖,其中,可從階段和子任務維度進行依賴配置。將每個階段中包含的多個子任務進一步進行分組編排,從並分組維度細化控制子任務併發。其實現方式如下:在子任務編排時,按執行順序分別為階段編號1、2、… n,同階段內設置併發分組編號1、2、… n,組內分別為各子任務編號n-1-1、n-1-2、… n-1-tn。該模型支援同階段內的子任務根據併發需求進行分組配置。同一階段的不同分組之間可以併發執行。同一階段的同一分組內的多個子任務循序執行。
在一些可能的實施方式中,參考圖3,在S103中,為進一步提高執行節點的負載均衡,還可以執行以下步驟:
S31、預先配置每個子任務的預期負載、每個執行節點的負載閾值;
S32、當前階段執行時,確定待執行子任務的預期負載,並計算每個執行節點的當前負載;
S33、根據每個執行節點的負載閾值和當前負載,和待執行子任務的預期負載確定待執行子任務的可用節點列表;以及,
S34、將待執行子任務下發至可用節點清單中負載率最低的執行節點。
一個示例中,基於負載均衡策略的分發流程如下:在S31中,添加調度任務時,需要為子任務配置預期負載,為執行節點配置負載閾值。使用者可根據子任務在生產上的預計資源損耗評估預期負載、根據執行節點的實際可利用資源評估負載閾值。該此處資源包括CPU、記憶體等。在S32中,子任務下發前,獲取該子任務對應的執行節點列表,並查詢每個執行節點當前正在執行的所有子任務,並計算該執行節點當前的負載總和
。在S33中,記當前待執行子任務預期負載為
,執行節點負載閾值為
,如果
+
小於配置的負載閾值
,則將此節點放到可用節點列表。在S34中,計算負載率[(
+
)/
]並排序,選擇負載率最低的可用節點進行子任務下發。相反,如果無可用節點,則記該子任務執行狀態“異常”。
傳統方案中難以規避執行節點因負載過高當機的風險。本實施例提出了一種即時的任務下發策略,要求預先評估執行節點的負載閾值和每個子任務的權重。在進行任務下發時,通過即時計算當前所有可用節點的實際負載,與負載閾值相比,綜合選擇最優的執行節點執行任務。相比於現有方案,交互複雜度低,確保執行節點不會超負載,具有更好的通用性和安全性。
在一些可能的實施方式中,方法還包括預先配置多種配置資訊,該配置資訊包括:調度任務的調度任務標識;每個子任務的以下一種或多種配置項:所屬調度任務的調度任務標識、所屬階段的階段標識、所屬階段的階段依賴關係、所屬任務分組的分組標識、子任務標識、任務依賴關係、預期負載、超時時間、執行模組標識;執行模組的以下一種或多種配置項:執行節點標識、執行節點的負載閾值、執行節點列表。
一個示例中,參考圖4,示出一種任務調度系統,主要可以包含配置模組400、視覺化介面401、調度模組402、監控模組403、存儲模組404、執行模組405,各個模組具體執行如下工作:配置模組400用於生成任務調度相關的配置資訊。例如,參考圖4,在(1)中配置模組400通過視覺化介面401輸入配置資訊,可選地也可以通過後臺輸入該配置資訊,本申請對此不作具體限制。視覺化介面401用於為使用者提供操作該任務調度相關流程的交互介面,可以在該視覺化介面401執行:添加/刪除/更新任務、添加配置資訊、查詢調度/子任務的執行狀態、手動觸發/終止調度任務等功能。例如,參考圖4,在(2)中視覺化介面401將配置資訊存儲到存儲模組404,在(3)中視覺化介面401向調度模組402發生手動觸發/終止調度任務的指令。調度模組402用於回應於觸發條件(手動觸發或自動觸發均可)啟動調度任務調度,同時負責子任務下發並維護任務執行狀態。例如,在(4)中調度模組402從存儲模組404獲取調度/子任務的配置資訊和執行狀態,在(5)中將滿足預設執行條件的子任務下發到執行模組405中的執行節點,在(6)中接收執行節點回饋的執行結果,在(7)中根據執行結果更新對應子任務的執行狀態。監控模組403用於監控當前所有正在執行的調度/子任務的進度,驅動任務流繼續向下執行或結束任務。在(8)中監控模組403從存儲模組404獲取調度/子任務的配置資訊及執行狀態,在(9)中監控模組403監控當前正在執行的調度/子任務的進度,在(10)中監控模組403在監控到當前階段子任務執行完成之後且存在後繼階段時向調度模402發送後繼階段的任務執行指令,在(11)中監控模組403在監控到當前階段子任務執行完成之後且不存在後繼階段時結束該調度任務調度。存儲模組404用於存儲調度/子任務的配置資訊和任務執行狀態。執行模組405包括若干個執行節點,每個執行節點均用於負責執行子任務,該執行節點一般是各業務系統的模組。
一個示例中,參考圖5,示出基於圖2中的編排結果並利用圖4所示出任務調度裝置來執行任務調度的流程交互圖,具體來說,當通過視覺化介面發出手動觸發指令或基於後臺發出自動觸發指令時,待調度的調度任務滿足觸發條件,進一步在S501,調度模組402獲取階段1的全部子任務。在S502,由於階段1為起始階段,因此無階段依賴和子任務依賴,調度模組402可以依次下發該階段1的每個子任務;在S503,若下發成功,則記該子任務的執行狀態為“執行中”,否則記為“異常”;在S504,在子任務執行完成後,調度模組402接收執行模組405的執行節點回饋的執行結果;在S505,調度模組402根據執行節點回饋的執行結果,在存儲模組404中更新對應子任務的執行狀態,可以是“成功”、“失敗”、“異常”等;在S506,由監控模組403監控獲取階段1的子任務執行狀態;在S507,當階段1的所有子任務均執行結束(非“待執行”或“執行中”狀態),監控模組403進一步判斷是否存在下階段待執行子任務,若不存在,則認為調度任務已完成執行,否則更新階段標識;在S508、監控模組403生成並發送階段1的下階段,也即階段2的執行指令;在S509,調度模組402獲取當前的全部子任務的執行狀態和階段2的全部子任務;在S510,調度模組402根據配置的階段依賴關係,判斷階段2是否滿足執行條件,若不滿足,則置該階段2所有子任務執行狀態為“異常”,否則依次執行該階段所有子任務;在S511,在階段2的子任務執行前,如果階段2的階段依賴關係為無依賴,調度模組402根據子任務依賴配置,判斷待處理子任務是否滿足執行條件;在S512,若待處理子任務不滿足執行條件,則將該子任務執行狀態更新為“異常”,否則按照S502進行任務下發。依次迴圈上述步驟S502-S512,直至階段n執行完成。可選地,針對階段內可能存在的多個任務分組,在S506和S507之間,還可以包括步驟(a),具體包括:若當前分組有待執行子任務,則繼續執行當前分組下一子任務,若當前階段內所有分組子任務都已完成,且存在下階段待執行任務則執行該S507。
在本說明書的描述中,參考術語“一些可能的實施方式”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特徵、結構、材料或者特點包含於本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特徵、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特徵進行結合和組合。
此外,術語“第一”、“第二”僅用於描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特徵的數量。由此,限定有“第一”、“第二”的特徵可以明示或者隱含地包括至少一個該特徵。在本發明的描述中,“多個”的含義是至少兩個,例如兩個,三個等,除非另有明確具體的限定。
流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用於實現特定邏輯功能或過程的步驟的可執行指令的代碼的模組、片段或部分,並且本發明的優選實施方式的範圍包括另外的實現,其中可以不按所示出或討論的順序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執行功能,這應被本發明的實施例所屬技術領域的技術人員所理解。
關於本申請實施例的方法流程圖,將某些操作描述為以一定循序執行的不同的步驟。這樣的流程圖屬於說明性的而非限制性的。可以將在本文中所描述的某些步驟分組在一起並且在單個操作中執行、可以將某些步驟分割成多個子步驟、並且可以以不同於在本文中所示出的順序來執行某些步驟。可以由任何電路結構和/或有形機制(例如,由在電腦設備上運行的軟體、硬體(例如,處理器或晶片實現的邏輯功能)等、和/或其任何組合)以任何方式來實現在流程圖中所示出的各個步驟。
基於相同的技術構思,本發明實施例還提供一種任務調度裝置,用於執行上述任一實施例所提供的任務調度方法。圖6為本發明實施例提供的一種任務調度裝置結構示意圖。
如圖6所示,該裝置60包括:
配置模組400,用於將待調度的調度任務拆分為多個子任務,將多個子任務編排為多個階段,並配置多個子任務之間的任務依賴關係和多個階段之間的階段依賴關係;
調度模組402用於回應於當前階段的執行指令,獲取當前階段的全部子任務,將滿足預設執行條件的待執行子任務下發到執行節點,其中,預設執行條件根據階段依賴關係、任務依賴關係以及任務執行狀態確定;並根據執行節點回饋的執行結果更新待執行子任務的執行狀態。
在一種可能的實施方式中,裝置還包括監控模組,用於:監控任務執行狀態;以及,當監控到當前階段的前一階段的全部子任務均執行完成時,生成當前階段的執行指令;和/或,當監控到當前階段的全部子任務均執行完成時,生成後續階段的執行指令。
在一種可能的實施方式中,配置模組400還用於:對階段中的多個子任務進行分組編排,得到階段的多個任務分組;以及,當當前階段包含多個任務分組時,並存執行當前階段的多個任務分組。
在一種可能的實施方式中,調度模組402還用於基於負載均衡策略將滿足預設執行條件的待執行子任務下發到執行節點,具體用於:預先配置每個子任務的預期負載、每個執行節點的負載閾值;當前階段執行時,確定待執行子任務的預期負載,並計算每個執行節點的當前負載;根據每個執行節點的負載閾值和當前負載,和待執行子任務的預期負載確定待執行子任務的可用節點列表;以及,將待執行子任務下發至可用節點清單中負載率最低的執行節點。
在一種可能的實施方式中,任務執行狀態至少包括子任務的執行狀態,子任務的執行狀態包括:待執行、執行中、成功、失敗、終止、異常。
在一種可能的實施方式中,階段依賴關係和任務依賴關係的依賴關係類型包括:強依賴、弱依賴和無依賴;其中,每種依賴關係類型和一個或多個子任務的執行狀態具有預設映射關係。
在一種可能的實施方式中,當前階段基於配置的階段依賴關係而依賴於前繼階段;其中,若階段依賴關係為強依賴,當前階段依賴於前繼階段全部子任務均執行成功;若階段依賴關係為弱依賴,當前階段依賴於前繼階段全部子任務均執行無異常;若階段依賴關係為無依賴,當前階段的開始執行不依賴前繼階段的子任務的執行狀態。
在一種可能的實施方式中,待執行子任務基於配置的任務依賴關係而依賴於至少一個指定子任務,任務依賴關係包括:強依賴、弱依賴和無依賴中的一種;其中,若任務依賴關係為強依賴,待執行子任務依賴於至少一個指定子任務均執行成功;若任務依賴關係為弱依賴,待執行子任務依賴於至少一個指定子任務執行成功或失敗;若任務依賴關係為無依賴,待執行子任務依賴於至少一個指定子任務執行成功、失敗、終止或異常。
在一種可能的實施方式中,裝置還包括判斷是否滿足執行條件,具體包括:若當前階段的階段依賴關係為強依賴或弱依賴,判斷當前階段是否滿足預設執行條件,若不滿足則置當前階段的全部子任務的執行狀態為異常,若滿足則利用負載均衡策略依次下發當前階段的全部子任務並更新下發後的子任務的執行狀態為執行中。
在一種可能的實施方式中,裝置還包括判斷是否滿足執行條件,具體包括:若當前階段的階段依賴關係為無依賴,則判斷當前階段的每個子任務是否滿足預設執行條件,若不滿足則置子任務的執行狀態為異常,若滿足則下發子任務,並更新下發後的子任務的執行狀態為執行中。
在一種可能的實施方式中,配置模組400還用於預先配置多個配置資訊,配置資訊包括以下中的一種或多種:調度任務的調度任務標識;每個子任務的以下一種或多種配置項:所屬調度任務的調度任務標識、所屬階段的階段標識、所屬階段的階段依賴關係、所屬任務分組的分組標識、子任務標識、任務依賴關係、預期負載、超時時間、執行模組標識;執行模組的以下一種或多種配置項:執行節點標識、執行節點的負載閾值、執行節點列表。
需要說明的是,本申請實施例中的任務調度裝置可以實現前述任務調度方法的實施例的各個過程,並達到相同的效果和功能,這裡不再贅述。
圖7為根據本申請一實施例的任務調度裝置,用於執行圖1所示出的任務調度方法,該裝置包括:至少一個處理器;以及,與至少一個處理器通信連接的記憶體;其中,記憶體存儲有可被至少一個處理器執行的指令,指令被至少一個處理器執行,以使至少一個處理器能夠執行上述實施例所述的方法。
根據本申請的一些實施例,提供了任務調度方法的非易失性電腦存儲介質,其上存儲有電腦可執行指令,該電腦可執行指令設置為在由處理器運行時執行:上述實施例所述的方法。
本申請中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於裝置、設備和電腦可讀存儲介質實施例而言,由於其基本相似於方法實施例,所以其描述進行了簡化,相關之處可參見方法實施例的部分說明即可。
本申請實施例提供的裝置、設備和電腦可讀存儲介質與方法是一一對應的,因此,裝置、設備和電腦可讀存儲介質也具有與其對應的方法類似的有益技術效果,由於上面已經對方法的有益技術效果進行了詳細說明,因此,這裡不再贅述裝置、設備和電腦可讀存儲介質的有益技術效果。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有電腦可用程式碼的電腦可用存儲介質(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可程式設計資料處理設備的處理器以產生一個機器,使得通過電腦或其他可程式設計資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些電腦程式指令也可存儲在能引導電腦或其他可程式設計資料處理設備以特定方式工作的電腦可讀記憶體中,使得存儲在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可程式設計資料處理設備上,使得在電腦或其他可程式設計設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可程式設計設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器 (CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀介質中的非永久性記憶體,隨機存取記憶體 (RAM) 和/或非易失性記憶體等形式,如唯讀記憶體 (ROM) 或快閃記憶體(flash RAM)。記憶體是電腦可讀介質的示例。
電腦可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊存儲。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的存儲介質的例子包括,但不限於相變記憶體 (PRAM)、靜態隨機存取記憶體 (SRAM)、動態隨機存取記憶體 (DRAM)、其他類型的隨機存取記憶體 (RAM)、唯讀記憶體 (ROM)、電可擦除可程式設計唯讀記憶體 (EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體 (CD-ROM)、數位多功能光碟 (DVD) 或其他光學存儲、磁盒式磁帶,磁帶磁磁片存儲或其他磁性存放裝置或任何其他非傳輸介質,可用於存儲可以被計算設備訪問的資訊。此外,儘管在附圖中以特定順序描述了本發明方法的操作,但是,這並非要求或者暗示必須按照該特定順序來執行這些操作,或是必須執行全部所示的操作才能實現期望的結果。附加地或備選地,可以省略某些步驟,將多個步驟合併為一個步驟執行,和/或將一個步驟分解為多個步驟執行。
雖然已經參考若干具體實施方式描述了本發明的精神和原理,但是應該理解,本發明並不限於所公開的具體實施方式,對各方面的劃分也不意味著這些方面中的特徵不能組合以進行受益,這種劃分僅是為了表述的方便。本發明旨在涵蓋所附申請專利範圍的精神和範圍內所包括的各種修改和等同佈置。
10:輪轂
11:輪轂本體
12:輪轂盤
120:輪輻條固定孔
13:棘齒盤
14:輪轂盤組
140:外輪轂盤
140A:固定凸部
140a:外固定孔
140b:避讓凹部
140B:讓避凹部
141:內輪轂盤
141a:內固定孔
141b:避讓凹部
20:輪輻條
30:輪框
31:定位結合孔
通過閱讀下文的示例性實施例的詳細描述,本領域普通技術人員將明白本文所述的優點和益處以及其他優點和益處。附圖僅用於示出示例性實施例的目的,而並不認為是對本發明的限制。而且在整個附圖中,用相同的標號表示相同的部件。在附圖中:
[圖1]為根據本發明一實施例的任務調度方法的流程示意圖;
[圖2]為根據本發明一實施例的對調度任務進行分階段編排的示意圖;
[圖3]為根據本發明又一實施例的任務調度方法的流程示意圖;
[圖4]為根據本發明一實施例的任務調度系統的示意圖;
[圖5]為根據本發明又一實施例的任務調度方法的流程示意圖;
[圖6]為根據本發明一實施例的任務調度裝置的結構示意圖;
[圖7]為根據本發明又一實施例的任務調度裝置的結構示意圖;
在附圖中,相同或對應的標號表示相同或對應的部分。
S101:將待調度的調度任務拆分為多個子任務,將多個子任務編排為多個階段
S102:配置多個子任務之間的任務依賴關係和多個階段之間的階段依賴關係
S103:回應於當前階段的執行指令,獲取當前階段的全部子任務,將滿足預設執行條件的待執行子任務下發到執行節點
S104:根據執行節點回饋的執行結果更新待執行子任務的執行狀態
Claims (24)
- 一種任務調度方法,其中,包括: 將待調度的調度任務拆分為多個子任務,,將所述多個子任務編排為多個階段,並配置所述多個子任務之間的任務依賴關係和所述多個階段之間的階段依賴關係; 回應於當前階段的執行指令,獲取當前階段的全部子任務,將滿足預設執行條件的待執行子任務下發到執行節點,其中,所述預設執行條件根據所述階段依賴關係、所述任務依賴關係以及任務執行狀態確定;並根據所述執行節點回饋的執行結果更新所述待執行子任務的執行狀態。
- 如請求項1所述的方法,其中,所述方法還包括:監控任務執行狀態;以及, 當監控到所述當前階段的前一階段的全部子任務均執行完成時,生成所述當前階段的執行指令;和/或, 當監控到所述當前階段的全部子任務均執行完成時,生成後續階段的執行指令。
- 如請求項1所述的方法,其中,對所述多個子任務進行分階段編排,還包括: 對所述階段中的多個子任務進行分組編排,得到所述階段的多個任務分組;以及,當所述當前階段包含所述多個任務分組時,並存執行所述當前階段的所述多個任務分組。
- 如請求項1所述的方法,其中,還包括基於負載均衡策略將滿足預設執行條件的所述待執行子任務下發到執行節點,具體包括: 預先配置每個所述子任務的預期負載、每個所述執行節點的負載閾值; 所述當前階段執行時,確定所述待執行子任務的所述預期負載,並計算每個所述執行節點的當前負載; 根據每個所述執行節點的所述負載閾值和所述當前負載,和所述待執行子任務的預期負載確定所述待執行子任務的可用節點列表;以及, 將所述待執行子任務下發至所述可用節點清單中負載率最低的所述執行節點。
- 如請求項1所述的方法,其中,所述任務執行狀態至少包括所述子任務的執行狀態,所述子任務的執行狀態包括:待執行、執行中、成功、失敗、終止、異常。
- 如請求項5所述的方法,其中,所述階段依賴關係和所述任務依賴關係的依賴關係類型包括:強依賴、弱依賴和無依賴; 其中,每種所述依賴關係類型和一個或多個子任務的執行狀態具有預設映射關係。
- 如請求項6所述的方法,其中,所述當前階段基於配置的所述階段依賴關係而依賴於前繼階段; 其中,若所述階段依賴關係為所述強依賴,所述當前階段依賴於前繼階段全部子任務均執行成功;若所述階段依賴關係為所述弱依賴,所述當前階段依賴於前繼階段全部子任務均執行無異常;若所述階段依賴關係為所述無依賴,所述當前階段的開始執行不依賴前繼階段的子任務的執行狀態。
- 如請求項6所述的方法,其中,所述待執行子任務基於配置的所述任務依賴關係而依賴於至少一個指定子任務,所述任務依賴關係包括:強依賴、弱依賴和無依賴中的一種; 其中,若所述任務依賴關係為所述強依賴,所述待執行子任務依賴於所述至少一個指定子任務均執行成功;若所述任務依賴關係為所述弱依賴,所述待執行子任務依賴於所述至少一個指定子任務執行成功或失敗;若所述任務依賴關係為所述無依賴,所述待執行子任務依賴於所述至少一個指定子任務執行成功、失敗、終止或異常。
- 如請求項6所述的方法,其中,所述方法還包括判斷是否滿足所述執行條件,具體包括: 若所述當前階段的所述階段依賴關係為強依賴或弱依賴,判斷所述當前階段是否滿足所述預設執行條件,若不滿足則置所述當前階段的全部子任務的執行狀態為異常,若滿足則利用負載均衡策略依次下發所述當前階段的全部子任務並更新下發後的子任務的執行狀態為執行中。
- 如請求項8所述的方法,其中,所述方法還包括判斷是否滿足所述執行條件,具體包括: 若所述當前階段的所述階段依賴關係為無依賴,則判斷所述當前階段的每個所述子任務是否滿足所述預設執行條件,若不滿足則置所述子任務的執行狀態為異常,若滿足則下發所述子任務,並更新下發後的所述子任務的執行狀態為執行中。
- 如請求項1所述的方法,其中,所述方法還包括預先配置多個配置資訊,所述配置資訊包括以下中的一種或多種:所述調度任務的調度任務標識;每個所述子任務的以下一種或多種配置項:所屬調度任務的所述調度任務標識、所屬階段的階段標識、所屬階段的所述階段依賴關係、所屬任務分組的分組標識、子任務標識、所述任務依賴關係、預期負載、超時時間、執行模組標識;執行模組的以下一種或多種配置項:執行節點標識、所述執行節點的負載閾值、執行節點列表。
- 一種任務調度裝置,其中,包括: 配置模組,用於將待調度的調度任務拆分為多個子任務,,將所述多個子任務編排為多個階段,並配置所述多個子任務之間的任務依賴關係和所述多個階段之間的階段依賴關係; 調度模組,用於回應於當前階段的執行指令,獲取當前階段的全部子任務,將滿足預設執行條件的待執行子任務下發到執行節點,其中,所述預設執行條件根據所述階段依賴關係、所述任務依賴關係以及任務執行狀態確定;並根據所述執行節點回饋的執行結果更新所述待執行子任務的執行狀態。
- 如請求項12所述的裝置,其中,所述裝置還包括監控模組,用於: 監控任務執行狀態;以及, 當監控到所述當前階段的前一階段的全部子任務均執行完成時,生成所述當前階段的執行指令;和/或,當監控到所述當前階段的全部子任務均執行完成時,生成後續階段的執行指令。
- 如請求項12所述的裝置,其中,所述配置模組還用於: 對所述階段中的多個子任務進行分組編排,得到所述階段的多個任務分組;以及,當所述當前階段包含所述多個任務分組時,並存執行所述當前階段的所述多個任務分組。
- 如請求項12所述的裝置,其中,所述調度模組還用於基於負載均衡策略將滿足預設執行條件的所述待執行子任務下發到執行節點,具體用於: 預先配置每個所述子任務的預期負載、每個所述執行節點的負載閾值; 所述當前階段執行時,確定所述待執行子任務的所述預期負載,並計算每個所述執行節點的當前負載; 根據每個所述執行節點的所述負載閾值和所述當前負載,和所述待執行子任務的預期負載確定所述待執行子任務的可用節點列表;以及, 將所述待執行子任務下發至所述可用節點清單中負載率最低的所述執行節點。
- 如請求項12所述的裝置,其中,所述任務執行狀態至少包括所述子任務的執行狀態,所述子任務的執行狀態包括:待執行、執行中、成功、失敗、終止、異常。
- 如請求項16所述的裝置,其中,所述階段依賴關係和所述任務依賴關係的依賴關係類型包括:強依賴、弱依賴和無依賴; 其中,每種所述依賴關係類型和一個或多個子任務的執行狀態具有預設映射關係。
- 如請求項17所述的裝置,其中,所述當前階段基於配置的所述階段依賴關係而依賴於前繼階段; 其中,若所述階段依賴關係為所述強依賴,所述當前階段依賴於前繼階段全部子任務均執行成功;若所述階段依賴關係為所述弱依賴,所述當前階段依賴於前繼階段全部子任務均執行無異常;若所述階段依賴關係為所述無依賴,所述當前階段的開始執行不依賴前繼階段的子任務的執行狀態。
- 如請求項17所述的裝置,其中, 所述待執行子任務基於配置的所述任務依賴關係而依賴於至少一個指定子任務,所述任務依賴關係包括:強依賴、弱依賴和無依賴中的一種; 其中,若所述任務依賴關係為所述強依賴,所述待執行子任務依賴於所述至少一個指定子任務均執行成功;若所述任務依賴關係為所述弱依賴,所述待執行子任務依賴於所述至少一個指定子任務執行成功或失敗;若所述任務依賴關係為所述無依賴,所述待執行子任務依賴於所述至少一個指定子任務執行成功、失敗、終止或異常。
- 如請求項17所述的裝置,其中,所述裝置還包括判斷是否滿足所述執行條件,具體包括: 若所述當前階段的所述階段依賴關係為強依賴或弱依賴,判斷所述當前階段是否滿足所述預設執行條件,若不滿足則置所述當前階段的全部子任務的執行狀態為異常,若滿足則利用負載均衡策略依次下發所述當前階段的全部子任務並更新下發後的子任務的執行狀態為執行中。
- 如請求項17所述的裝置,其中,所述裝置還包括判斷是否滿足所述執行條件,具體包括: 若所述當前階段的所述階段依賴關係為無依賴,則判斷所述當前階段的每個所述子任務是否滿足所述預設執行條件,若不滿足則置所述子任務的執行狀態為異常,若滿足則下發所述子任務,並更新下發後的所述子任務的執行狀態為執行中。
- 如請求項12所述的裝置,其中,所述裝置還包括預先配置多個配置資訊,所述配置資訊包括以下中的一種或多種:所述調度任務的調度任務標識;每個所述子任務的以下一種或多種配置項:所屬調度任務的所述調度任務標識、所屬階段的階段標識、所屬階段的所述階段依賴關係、所屬任務分組的分組標識、子任務標識、所述任務依賴關係、預期負載、超時時間、執行模組標識;執行模組的以下一種或多種配置項:執行節點標識、所述執行節點的負載閾值、執行節點列表。
- 一種任務調度裝置,其中,包括: 至少一個處理器;以及,與至少一個處理器通信連接的記憶體;其中,記憶體存儲有可被至少一個處理器執行的指令,指令被至少一個處理器執行,以使至少一個處理器能夠執行:如請求項1-11所述的方法。
- 一種電腦可讀存儲介質,所述電腦可讀存儲介質存儲有程式,當所述程式被多核處理器執行時,使得所述多核處理器執行如請求項1-11中任一項所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110436537.2 | 2021-04-22 | ||
CN202110436537.2A CN113238838B (zh) | 2021-04-22 | 2021-04-22 | 一种任务调度方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202242643A true TW202242643A (zh) | 2022-11-01 |
TWI791389B TWI791389B (zh) | 2023-02-01 |
Family
ID=77128847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111107056A TWI791389B (zh) | 2021-04-22 | 2022-02-25 | 任務調度方法、裝置及電腦可讀存儲介質 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN113238838B (zh) |
TW (1) | TWI791389B (zh) |
WO (1) | WO2022222567A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238838B (zh) * | 2021-04-22 | 2023-01-24 | 中国银联股份有限公司 | 一种任务调度方法、装置及计算机可读存储介质 |
CN113641476B (zh) * | 2021-08-16 | 2023-07-14 | 腾讯科技(深圳)有限公司 | 一种任务调度方法、游戏引擎、设备及存储介质 |
CN113741872B (zh) * | 2021-09-03 | 2024-04-23 | 上海新炬网络信息技术股份有限公司 | 基于作业调度的软件应用自动化发布方法 |
CN113835892B (zh) * | 2021-09-27 | 2024-02-13 | 苏州浪潮智能科技有限公司 | 统一存储设备及其业务管理方法、模块和可读存储介质 |
CN113919877B (zh) * | 2021-10-15 | 2024-06-28 | 深圳市酷开网络科技股份有限公司 | 基于dmp平台圈人任务进度处理方法、装置及可读存储介质 |
CN116069388A (zh) * | 2021-10-30 | 2023-05-05 | 华为技术有限公司 | 一种任务处理方法及电子装置 |
CN114020434A (zh) * | 2021-11-09 | 2022-02-08 | 中国建设银行股份有限公司 | 一种任务处理方法、装置、电子设备及存储介质 |
CN114167766A (zh) * | 2021-11-15 | 2022-03-11 | 成都四方伟业软件股份有限公司 | 一种多关联设备时指令下发执行的方法及装置 |
CN114416346B (zh) * | 2021-12-23 | 2023-03-24 | 广州市玄武无线科技股份有限公司 | 一种多节点任务调度方法、装置、设备及存储介质 |
CN114327819B (zh) * | 2021-12-24 | 2023-02-03 | 北京百度网讯科技有限公司 | 一种任务管理方法、装置、设备及存储介质 |
CN114358649B (zh) * | 2022-01-17 | 2022-09-13 | 安徽君鲲科技有限公司 | 一种海事现场监管方法及系统 |
CN115328639B (zh) * | 2022-10-13 | 2022-12-13 | 北京云枢创新软件技术有限公司 | 一种基于芯片验证回归的任务调度系统 |
CN115816441B (zh) * | 2022-10-31 | 2023-08-08 | 实时侠智能控制技术有限公司 | 基于任务描述的机器人控制方法、装置及可读介质 |
CN115640102B (zh) * | 2022-11-16 | 2023-03-31 | 武汉大学 | 基于分布式任务的可重复执行式计算方法、系统和介质 |
CN115955481B (zh) * | 2022-12-12 | 2024-06-14 | 支付宝(杭州)信息技术有限公司 | 应急响应方法和装置 |
CN116107724B (zh) * | 2023-04-04 | 2023-07-18 | 山东浪潮科学研究院有限公司 | 一种ai加速核调度管理方法、装置、设备及存储介质 |
CN116501474B (zh) * | 2023-06-08 | 2023-09-22 | 之江实验室 | 一种批量同质任务的处理系统、方法以及装置 |
CN116723225B (zh) * | 2023-06-16 | 2024-05-17 | 广州银汉科技有限公司 | 游戏任务的自动分配方法及系统 |
CN117992198B (zh) * | 2024-02-06 | 2024-06-14 | 广州翌拓软件开发有限公司 | 用于自适应调度的任务处理方法及系统 |
CN117806806B (zh) * | 2024-02-28 | 2024-05-17 | 湖南科技大学 | 任务部分卸载调度方法、终端设备及存储介质 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949853B2 (en) * | 2011-08-04 | 2015-02-03 | Microsoft Corporation | Using stages to handle dependencies in parallel tasks |
CN104915260B (zh) * | 2015-06-19 | 2018-05-25 | 北京搜狐新媒体信息技术有限公司 | 一种Hadoop集群管理任务的分发方法和系统 |
CN108287756A (zh) * | 2018-01-25 | 2018-07-17 | 联动优势科技有限公司 | 一种处理任务的方法及装置 |
CN108491254A (zh) * | 2018-02-07 | 2018-09-04 | 链家网(北京)科技有限公司 | 一种数据仓库的调度方法及装置 |
CN109725995B (zh) * | 2018-06-15 | 2024-04-12 | 中国平安人寿保险股份有限公司 | 数据抽取任务执行方法、装置、设备及可读存储介质 |
CN110895484A (zh) * | 2018-09-12 | 2020-03-20 | 北京奇虎科技有限公司 | 任务调度方法及装置 |
EP3851970A4 (en) * | 2018-09-30 | 2021-10-27 | Huawei Technologies Co., Ltd. | COMPUTING ACCELERATOR, EXCHANGER, TASK PLANNING METHOD AND PROCESSING SYSTEM |
CN110134499A (zh) * | 2019-03-29 | 2019-08-16 | 新智云数据服务有限公司 | 任务调度方法、任务调度系统、存储介质和计算机设备 |
CN110287052B (zh) * | 2019-06-25 | 2022-01-28 | 深圳前海微众银行股份有限公司 | 一种异常任务的根因任务确定方法及装置 |
CN110516971B (zh) * | 2019-08-29 | 2023-04-25 | 杭州网易再顾科技有限公司 | 异常检测的方法、装置、介质和计算设备 |
CN111708628A (zh) * | 2020-06-23 | 2020-09-25 | 中国平安财产保险股份有限公司 | 任务调度管理方法、装置、设备及存储介质 |
CN112114956A (zh) * | 2020-09-29 | 2020-12-22 | 中国银行股份有限公司 | 一种任务调度方法、装置和系统 |
CN112596876A (zh) * | 2020-12-17 | 2021-04-02 | 平安普惠企业管理有限公司 | 一种任务调度方法、装置及相关设备 |
CN112631751A (zh) * | 2020-12-22 | 2021-04-09 | 平安普惠企业管理有限公司 | 任务调度方法、装置、计算机设备及存储介质 |
CN112559156B (zh) * | 2020-12-23 | 2024-06-18 | 百果园技术(新加坡)有限公司 | 一种多依赖任务分组管理方法、装置、设备及存储介质 |
CN112667383B (zh) * | 2020-12-31 | 2024-02-09 | 北京高途云集教育科技有限公司 | 一种任务执行及调度方法、系统、装置、计算设备及介质 |
CN113238838B (zh) * | 2021-04-22 | 2023-01-24 | 中国银联股份有限公司 | 一种任务调度方法、装置及计算机可读存储介质 |
-
2021
- 2021-04-22 CN CN202110436537.2A patent/CN113238838B/zh active Active
-
2022
- 2022-01-28 WO PCT/CN2022/074659 patent/WO2022222567A1/zh active Application Filing
- 2022-02-25 TW TW111107056A patent/TWI791389B/zh active
Also Published As
Publication number | Publication date |
---|---|
WO2022222567A1 (zh) | 2022-10-27 |
TWI791389B (zh) | 2023-02-01 |
CN113238838B (zh) | 2023-01-24 |
CN113238838A (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI791389B (zh) | 任務調度方法、裝置及電腦可讀存儲介質 | |
CN108845884B (zh) | 物理资源分配方法、装置、计算机设备和存储介质 | |
WO2019037203A1 (zh) | 应用程序的性能测试方法、装置、计算机设备和存储介质 | |
US20080030764A1 (en) | Server parallel aggregation | |
US20100269110A1 (en) | Executing tasks through multiple processors consistently with dynamic assignments | |
CN105786603B (zh) | 一种基于分布式的高并发业务处理系统及方法 | |
US9104501B2 (en) | Preparing parallel tasks to use a synchronization register | |
US10067793B2 (en) | Data processing method and apparatus for executing task code using reservation instruction and release instruction | |
US11645098B2 (en) | Systems and methods to pre-provision sockets for serverless functions | |
CN111897633A (zh) | 一种任务处理的方法和装置 | |
WO2020216077A1 (zh) | 一种区块链事件去重方法、装置、计算机设备及存储介质 | |
CN111930525A (zh) | Gpu资源使用方法、电子设备及计算机可读介质 | |
Tavakoli et al. | Log-assisted straggler-aware I/O scheduler for high-end computing | |
WO2023160418A1 (zh) | 资源处理方法及资源调度方法 | |
CN111522630B (zh) | 基于批次调度中心的计划任务执行方法以及系统 | |
CN113419839A (zh) | 多类型作业的资源调度方法、装置、电子设备及存储介质 | |
WO2024108995A1 (zh) | 数据交互方法、装置、计算机设备和存储介质 | |
CN116308772B (zh) | 交易分发方法、节点和区块链系统 | |
CN114546630A (zh) | 任务处理方法及分配方法、装置、电子设备、介质 | |
US20240069970A1 (en) | System and method for sharing vitals among service replicas to enable processing of long running automation workflows in a container orchestration system | |
CN114327259B (zh) | 一种闪存通道控制器运行方法、装置、设备及存储介质 | |
CN114416438A (zh) | 数据导出方法、装置、计算机设备及调度服务系统 | |
US11354154B2 (en) | Timer task ownership determination in a cluster based on a common cluster member selection algorithm | |
CN112199168A (zh) | 任务处理方法、装置及系统和任务状态交互方法 | |
CN113886349A (zh) | 计费系统参数装载共享方法、装置及计算设备 |