超時時間閾值時,判定所述當前任務執(zhí)行失敗,發(fā)出失敗告警信息,并更新所述當前任務的任務結果執(zhí)行狀態(tài)。若任務可執(zhí)行性確定模塊703監(jiān)測到在預設超時時間閾值內所依賴的各任務均執(zhí)行完畢,則仍然將該當前任務下發(fā)給任務執(zhí)行節(jié)點執(zhí)行。
[0072]在將當前任務下發(fā)后,任務執(zhí)行節(jié)點會執(zhí)行該當前任務,并基于任務執(zhí)行結果返回任務執(zhí)行返回碼。任務調度節(jié)點會接收任務執(zhí)行節(jié)點返回的任務執(zhí)行返回碼,并基于任務執(zhí)行返回碼判斷該任務執(zhí)行節(jié)點執(zhí)行當前任務是否成功。
[0073]基于此,在一個具體示例中,
[0074]上述任務處理模塊704,還用于接收所述任務執(zhí)行節(jié)點返回的任務執(zhí)行返回碼,并基于所述任務執(zhí)行返回碼判斷所述任務執(zhí)行節(jié)點執(zhí)行當前任務是否成功,若是,判定所述當前任務執(zhí)行成功,并更新所述當前任務的任務結果執(zhí)行狀態(tài)。
[0075]若任務處理模塊704基于所述任務執(zhí)行返回碼判定所述任務執(zhí)行節(jié)點執(zhí)行當前任務不成功,則可以進一步判斷是否達到任務失敗重試結束條件,若否,將所述當前任務發(fā)送給另一個任務執(zhí)行節(jié)點執(zhí)行。從而可以避免任務執(zhí)行節(jié)點出現(xiàn)故障導致的任務執(zhí)行失敗,實現(xiàn)機器級別的容錯機制。
[0076]若任務處理模塊704判定達到任務失敗重試結束條件,則可以直接判定所述當前任務執(zhí)行不成功,并更新所述當前任務的任務結果執(zhí)行狀態(tài)。
[0077]其中,上述任務失敗重試結束條件,可以采用各種可能的方式設置,例如設置任務執(zhí)行時間、任務重試次數(shù)等等。在本發(fā)明的一個實施例中,可以將任務失敗重試結束條件設置為預定失敗重試次數(shù)閾值,并在當前任務的重試次數(shù)達到預定失敗重試次數(shù)閾值時,判定達到任務失敗重試結束條件。
[0078]由于該當前任務的執(zhí)行可能是基于前面故障恢復進一步拉起的任務,例如所依賴的任務執(zhí)行失敗、對所依賴的任務執(zhí)行失敗的原因解決后基于任務依賴圖拉起的任務,或者是當前任務本身執(zhí)行失敗后、對當前任務執(zhí)行失敗的原因解決后重新觸發(fā)的任務。而在故障任務解決的過程中,由于后續(xù)其他任務已經(jīng)到達了觸發(fā)時間,而由于任務依賴關系的存在,會導致后續(xù)一系列任務的執(zhí)行失敗。此時,若要逐個重新手動恢復各任務,尤其是在故障恢復時間較長的情況下,會造成極大的運維工作量。
[0079]據(jù)此,在一個具體示例中,上述任務處理模塊704,還可以在當前任務執(zhí)行成功后,判斷所述當前任務是否為故障恢復后的執(zhí)行任務,此時,上述任務觸發(fā)模塊707,還用于在任務模塊704判定當前任務為故障恢復后的執(zhí)行任務時,根據(jù)任務依賴圖的順序,觸發(fā)所述當前任務的后續(xù)任務,直至后續(xù)無任務或者后續(xù)任務沒有達到觸發(fā)條件。
[0080]本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random AccessMemory, RAM)等。
[0081]以上所述實施例的各技術特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術特征所有可能的組合都進行描述,然而,只要這些技術特征的組合不存在矛盾,都應當認為是本說明書記載的范圍。
[0082]以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發(fā)明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應以所附權利要求為準。
【主權項】
1.一種任務調度方法,其特征在于,包括步驟: 在達到當前任務觸發(fā)條件時,觸發(fā)當前任務; 根據(jù)任務依賴圖判斷該當前任務是否有依賴的任務,若有,獲取所依賴的各任務的任務執(zhí)行結果狀態(tài),所述任務依賴圖為各任務之間的依賴關系的有向無環(huán)圖; 根據(jù)所依賴的各任務的任務結果執(zhí)行狀態(tài),判斷所依賴的各任務是否均執(zhí)行成功; 若是,將所述當前任務下發(fā)給任務執(zhí)行節(jié)點執(zhí)行。2.根據(jù)權利要求1所述的任務調度方法,其特征在于,還包括步驟: 在判定當前任務所依賴的各任務中至少有一個未執(zhí)行成功時,執(zhí)行等待過程; 在等待時間大于或者等于預設超時時間閾值時,判定所述當前任務執(zhí)行失敗,發(fā)出失敗告警信息。3.根據(jù)權利要求1所述的任務調度方法,其特征在于,在將當前任務下發(fā)后,還包括步驟: 接收所述任務執(zhí)行節(jié)點返回的任務執(zhí)行返回碼; 基于所述任務執(zhí)行返回碼判斷所述任務執(zhí)行節(jié)點執(zhí)行當前任務是否成功; 若是,判定所述當前任務執(zhí)行成功,并更新所述當前任務的任務結果執(zhí)行狀態(tài)。4.根據(jù)權利要求3所述的任務調度方法,其特征在于,在判定所述任務執(zhí)行節(jié)點執(zhí)行當前任務不成功時,還包括步驟: 判斷是否達到任務失敗重試結束條件,若否,將所述當前任務發(fā)送給另一個任務執(zhí)行節(jié)點執(zhí)行。5.根據(jù)權利要求4所述的任務調度方法,其特征在于,在判定達到任務失敗重試結束條件時,判定所述當前任務執(zhí)行不成功,并更新所述當前任務的任務結果執(zhí)行狀態(tài)。6.根據(jù)權利要求4所述的任務調度方法,其特征在于,在所述當前任務的重試次數(shù)達到預定失敗重試次數(shù)閾值時,判定達到任務失敗重試結束條件。7.根據(jù)權利要求3所述的任務調度方法,其特征在于,在所述當前任務執(zhí)行成功后,還包括步驟:判斷所述當前任務是否為故障恢復后的執(zhí)行任務,若是,根據(jù)任務依賴圖的順序,觸發(fā)所述當前任務的后續(xù)任務,直至后續(xù)無任務或者后續(xù)任務沒有到達運行時間。8.根據(jù)權利要求1所述的任務調度方法,其特征在于,在到達當前任務的執(zhí)行時間時,判定達到當前任務觸發(fā)條件。9.一種任務調度裝置,其特征在于,包括: 任務觸發(fā)模塊,用于判斷是否達到任務觸發(fā)條件,并在達到當前任務觸發(fā)條件時,觸發(fā)當前任務; 任務依賴性確定模塊,用于根據(jù)任務依賴圖判斷所述當前任務是否有依賴的任務,所述任務依賴圖為各任務之間的依賴關系的有向無環(huán)圖; 任何可執(zhí)行性確定模塊,用于在所述任務依賴性確定模塊的判定結果為是時,獲取所依賴的各任務的任務執(zhí)行結果狀態(tài),根據(jù)所依賴的各任務的任務結果執(zhí)行狀態(tài),判斷所依賴的各任務是否均執(zhí)行成功; 任務處理模塊,用于在所述任務依賴性確定模塊的判定結果為否時,或者所述任務可執(zhí)行性確定模塊的判定結果為是時,將所述當前任務進行下發(fā)給任務執(zhí)行節(jié)點執(zhí)行。10.根據(jù)權利要求9所述的任務調度裝置,其特征在于: 所述任務可執(zhí)行性確定模塊,還用于判定當前任務所依賴的各任務至少有一個未執(zhí)行成功時,執(zhí)行等待過程,并在等待時間大于或者等于預設超時時間閾值時,判定所述當前任務執(zhí)行失敗,發(fā)出失敗告警信息,并更新所述當前任務的任務結果執(zhí)行狀態(tài)。11.根據(jù)權利要求9所述的任務調度裝置,其特征在于: 所述任務處理模塊,還用于接收所述任務執(zhí)行節(jié)點返回的任務執(zhí)行返回碼,并基于所述任務執(zhí)行返回碼判斷所述任務執(zhí)行節(jié)點執(zhí)行當前任務是否成功,若是,判定所述當前任務執(zhí)行成功,并更新所述當前任務的任務結果執(zhí)行狀態(tài)。12.根據(jù)權利要求11所述的任務調度裝置,其特征在于: 所述任務處理模塊,還用于在判定所述任務執(zhí)行節(jié)點執(zhí)行當前任務不成功時,判斷是否達到任務失敗重試結束條件,若是,將所述當前任務發(fā)送給另一個任務執(zhí)行節(jié)點執(zhí)行。13.根據(jù)權利要求12所述的任務調度裝置,其特征在于,所述任務處理模塊在當前任務的重試次數(shù)達到預定失敗重試次數(shù)閾值時,判定達到任務失敗重試結束條件。14.根據(jù)權利要求12所述的任務調度裝置,其特征在于,所述任務處理模塊,還用于在判定達到任務失敗重試結束條件時,判定所述當前任務執(zhí)行不成功,并更新所述當前任務的任務結果執(zhí)行狀態(tài)。15.根據(jù)權利要求11所述的任務調度裝置,其特征在于: 所述任務處理模塊,還用于在所述當前任務執(zhí)行成功后,判斷所述當前任務是否為故障恢復后的執(zhí)行任務; 所述任務觸發(fā)模塊,還用于在所述任務模塊判定所述當前任務為故障恢復后的執(zhí)行任務時,根據(jù)任務依賴圖的順序,觸發(fā)所述當前任務的后續(xù)任務,直至后續(xù)無任務或者后續(xù)任務沒有達到觸發(fā)條件。16.根據(jù)權利要求9所述的任務調度裝置,其特征在于,所述任務觸發(fā)模塊在到達當前任務的執(zhí)行時間時,判定達到當前任務觸發(fā)條件。
【專利摘要】一種任務調度方法及裝置,該方法包括步驟:在達到當前任務觸發(fā)條件時,觸發(fā)當前任務;根據(jù)任務依賴圖判斷該當前任務是否有依賴的任務,若有,獲取所依賴的各任務的任務執(zhí)行結果狀態(tài),所述任務依賴圖為各任務之間的依賴關系的有向無環(huán)圖;根據(jù)所依賴的各任務的任務結果執(zhí)行狀態(tài),判斷所依賴的各任務是否均執(zhí)行成功;若是,將所述當前任務下發(fā)給任務執(zhí)行節(jié)點執(zhí)行。本發(fā)明實施例方案提高了存在依賴關系的各任務的文件依賴性檢查的可靠性和各任務進行調度時的任務執(zhí)行效率。
【IPC分類】G06F9/46
【公開號】CN104965754
【申請?zhí)枴緾N201510147593
【發(fā)明人】宮振飛
【申請人】騰訊科技(深圳)有限公司
【公開日】2015年10月7日
【申請日】2015年3月31日