本技術涉及大數(shù)據(jù),特別是涉及一種任務處理方法、裝置、計算機設備、計算機可讀存儲介質和計算機程序產(chǎn)品。
背景技術:
1、隨著大數(shù)據(jù)技術的發(fā)展,出現(xiàn)了數(shù)據(jù)集市或數(shù)據(jù)倉庫,數(shù)據(jù)倉庫是一個集成的面向主題的數(shù)據(jù)集合,在數(shù)據(jù)倉庫里,每個數(shù)據(jù)單元都和特定的時間相關。數(shù)據(jù)集市是一個小型的數(shù)據(jù)倉庫。傳統(tǒng)技術中,一方面,對大批量數(shù)據(jù)的計算通常依賴數(shù)據(jù)集市或數(shù)據(jù)倉庫,以批量模式在數(shù)據(jù)集市依次完成數(shù)據(jù)任務清單的計算任務,對數(shù)據(jù)庫服務器性能要求高。另一方面,利用數(shù)據(jù)流處理每個數(shù)據(jù)任務清單(百萬級),由于無法處理大數(shù)據(jù)量,需要把每個數(shù)據(jù)任務清單拆分成上千個萬級的數(shù)據(jù)包,通過一個數(shù)據(jù)流處理,實現(xiàn)數(shù)據(jù)任務清單的計算。
2、數(shù)據(jù)任務清單的計算過程中,需要關聯(lián)的數(shù)據(jù)量大,當處理一個百萬級數(shù)據(jù)的數(shù)據(jù)任務清單時,經(jīng)常處理需要幾十分鐘或上小時,導致數(shù)據(jù)任務計算的效率低下。
技術實現(xiàn)思路
1、基于此,有必要針對上述技術問題,提供一種能夠提高任務處理效率的任務處理方法、裝置、計算機設備、計算機可讀存儲介質和計算機程序產(chǎn)品。
2、第一方面,本技術提供了一種任務處理方法,所述方法包括:
3、執(zhí)行至少兩個數(shù)據(jù)處理任務,所述數(shù)據(jù)處理任務攜帶有任務執(zhí)行狀態(tài),且各所述數(shù)據(jù)處理任務為并行處理;每一所述數(shù)據(jù)處理任務包括若干存在執(zhí)行順序的子任務;
4、當所述數(shù)據(jù)處理任務中至少一個第一數(shù)據(jù)處理任務的任務執(zhí)行狀態(tài)表征第一子任務執(zhí)行完成時,將用于執(zhí)行所述第一子任務的第一執(zhí)行單元分配至第二數(shù)據(jù)處理任務的執(zhí)行,所述第二數(shù)據(jù)處理任務的任務執(zhí)行狀態(tài)表征第一子任務未執(zhí)行或未執(zhí)行完成。
5、在其中一個實施例中,所述方法還包括:
6、獲取所述數(shù)據(jù)處理任務的任一子任務的處理時長和處理時長閾值,所述處理時長閾值是基于執(zhí)行對應的所述子任務的第一執(zhí)行單元的處理時長確定的;
7、當所述子任務的處理時長大于或等于對應的所述處理時長閾值時,則增加用于執(zhí)行對應的所述子任務的第二執(zhí)行單元。
8、在其中一個實施例中,所述第一執(zhí)行單元和所述第二執(zhí)行單元并行執(zhí)行所述子任務時,所述數(shù)據(jù)處理任務的任務執(zhí)行狀態(tài)表征所述第一執(zhí)行單元和所述第二執(zhí)行單元均未執(zhí)行完成所述子任務。
9、在其中一個實施例中,所述方法還包括:
10、當所述數(shù)據(jù)處理任務的任務執(zhí)行狀態(tài)表征任一所述子任務執(zhí)行完成時,向消息隊列發(fā)送隊列消息;所述隊列消息包括所述子任務執(zhí)行完成的任務執(zhí)行狀態(tài);
11、從所述消息隊列中讀取所述隊列消息,并基于所述隊列消息開始執(zhí)行所述子任務的下一子任務,所述數(shù)據(jù)處理任務的任務執(zhí)行狀態(tài)更新為所述下一子任務未執(zhí)行或未執(zhí)行完成。
12、在其中一個實施例中,所述任務執(zhí)行狀態(tài)通過數(shù)據(jù)庫狀態(tài)碼值表征;所述方法還包括:
13、當所述數(shù)據(jù)處理任務的任務執(zhí)行狀態(tài)表征任一所述子任務執(zhí)行完成時,更新所述數(shù)據(jù)處理任務的數(shù)據(jù)庫狀態(tài)碼值為第一數(shù)據(jù)庫狀態(tài)碼值,所述第一數(shù)據(jù)庫狀態(tài)碼值表征所述子任務執(zhí)行完成;
14、在所述第一數(shù)據(jù)庫狀態(tài)碼值通過校驗的情況下,開始執(zhí)行所述子任務的下一子任務,所述數(shù)據(jù)處理任務的數(shù)據(jù)庫狀態(tài)碼值從所述第一數(shù)據(jù)庫狀態(tài)碼值替換為第二數(shù)據(jù)庫狀態(tài)碼值,所述第二數(shù)據(jù)庫狀態(tài)碼值表征下一子任務未執(zhí)行或未執(zhí)行完成。
15、在其中一個實施例中,所述更新所述數(shù)據(jù)處理任務的數(shù)據(jù)庫狀態(tài)碼值為第一數(shù)據(jù)庫狀態(tài)碼值之前,還包括:
16、檢測是否存在第三數(shù)據(jù)庫狀態(tài)碼值的所述數(shù)據(jù)處理任務;所述第三數(shù)據(jù)庫狀態(tài)碼值表征所述子任務未執(zhí)行或未執(zhí)行完成;
17、當存在數(shù)據(jù)庫狀態(tài)碼值為第三數(shù)據(jù)庫狀態(tài)碼值的所述數(shù)據(jù)處理任務時,開始執(zhí)行所述子任務;
18、當不存在數(shù)據(jù)庫狀態(tài)碼值為第三數(shù)據(jù)庫狀態(tài)碼值的所述數(shù)據(jù)處理任務時,重新執(zhí)行檢測是否存在第三數(shù)據(jù)庫狀態(tài)碼值的所述數(shù)據(jù)處理任務的步驟,直至存在數(shù)據(jù)庫狀態(tài)碼值為第三數(shù)據(jù)庫狀態(tài)碼值的所述數(shù)據(jù)處理任務。
19、第二方面,本技術還提供了一種任務處理裝置,所述裝置包括:
20、執(zhí)行模塊,用于執(zhí)行至少兩個數(shù)據(jù)處理任務,所述數(shù)據(jù)處理任務攜帶有任務執(zhí)行狀態(tài),且各所述數(shù)據(jù)處理任務為并行處理;每一所述數(shù)據(jù)處理任務包括若干存在執(zhí)行順序的子任務;
21、分配模塊,用于當所述數(shù)據(jù)處理任務中至少一個第一數(shù)據(jù)處理任務的任務執(zhí)行狀態(tài)表征第一子任務執(zhí)行完成時,將用于執(zhí)行所述第一子任務的第一執(zhí)行單元分配至第二數(shù)據(jù)處理任務的執(zhí)行,所述第二數(shù)據(jù)處理任務的任務執(zhí)行狀態(tài)表征第一子任務未執(zhí)行或未執(zhí)行完成。
22、在其中一個實施例中,所述裝置還包括:
23、獲取模塊,獲取所述數(shù)據(jù)處理任務的任一子任務的處理時長和處理時長閾值,所述處理時長閾值是基于執(zhí)行對應的所述子任務的第一執(zhí)行單元的處理時長確定的;
24、增加模塊,用于當所述子任務的處理時長大于或等于對應的所述處理時長閾值時,則增加用于執(zhí)行對應的所述子任務的第二執(zhí)行單元。
25、在其中一個實施例中,所述第一執(zhí)行單元和所述第二執(zhí)行單元并行執(zhí)行所述子任務時,所述數(shù)據(jù)處理任務的任務執(zhí)行狀態(tài)表征所述第一執(zhí)行單元和所述第二執(zhí)行單元均未執(zhí)行完成所述子任務。
26、在其中一個實施例中,所述裝置還包括:
27、發(fā)送模塊,用于當所述數(shù)據(jù)處理任務的任務執(zhí)行狀態(tài)表征任一所述子任務執(zhí)行完成時,向消息隊列發(fā)送隊列消息;所述隊列消息包括所述子任務執(zhí)行完成的任務執(zhí)行狀態(tài);
28、讀取執(zhí)行模塊,用于從所述消息隊列中讀取所述隊列消息,并基于所述隊列消息開始執(zhí)行所述子任務的下一子任務,所述數(shù)據(jù)處理任務的任務執(zhí)行狀態(tài)更新為所述下一子任務未執(zhí)行或未執(zhí)行完成。
29、在其中一個實施例中,所述任務執(zhí)行狀態(tài)通過數(shù)據(jù)庫狀態(tài)碼值表征;所述裝置還包括:
30、碼值更新模塊,用于當所述數(shù)據(jù)處理任務的任務執(zhí)行狀態(tài)表征任一所述子任務執(zhí)行完成時,更新所述數(shù)據(jù)處理任務的數(shù)據(jù)庫狀態(tài)碼值為第一數(shù)據(jù)庫狀態(tài)碼值,所述第一數(shù)據(jù)庫狀態(tài)碼值表征所述子任務執(zhí)行完成;
31、執(zhí)行更新模塊,用于在所述第一數(shù)據(jù)庫狀態(tài)碼值通過校驗的情況下,開始執(zhí)行所述子任務的下一子任務,所述數(shù)據(jù)處理任務的數(shù)據(jù)庫狀態(tài)碼值從所述第一數(shù)據(jù)庫狀態(tài)碼值替換為第二數(shù)據(jù)庫狀態(tài)碼值,所述第二數(shù)據(jù)庫狀態(tài)碼值表征下一子任務未執(zhí)行或未執(zhí)行完成。
32、在其中一個實施例中,所述裝置還包括:
33、檢測模塊,用于檢測是否存在第三數(shù)據(jù)庫狀態(tài)碼值的所述數(shù)據(jù)處理任務;所述第三數(shù)據(jù)庫狀態(tài)碼值表征所述子任務未執(zhí)行或未執(zhí)行完成;當存在數(shù)據(jù)庫狀態(tài)碼值為第三數(shù)據(jù)庫狀態(tài)碼值的所述數(shù)據(jù)處理任務時,開始執(zhí)行所述子任務;當不存在數(shù)據(jù)庫狀態(tài)碼值為第三數(shù)據(jù)庫狀態(tài)碼值的所述數(shù)據(jù)處理任務時,重新執(zhí)行檢測是否存在第三數(shù)據(jù)庫狀態(tài)碼值的所述數(shù)據(jù)處理任務的步驟,直至存在數(shù)據(jù)庫狀態(tài)碼值為第三數(shù)據(jù)庫狀態(tài)碼值的所述數(shù)據(jù)處理任務。
34、第三方面,本技術還提供了一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)上述的方法的步驟。
35、第四方面,本技術還提供了一種計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述的方法的步驟。
36、第五方面,本技術還提供了一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述的方法的步驟。
37、上述任務處理方法、裝置、計算機設備、計算機可讀存儲介質和計算機程序產(chǎn)品,通過在執(zhí)行多個數(shù)據(jù)處理任務時,對多個數(shù)據(jù)處理任務中存在執(zhí)行順序的子任務并行處理,在執(zhí)行第一數(shù)據(jù)處理任務的第一子任務完成時,將用于執(zhí)行第一子任務的第一執(zhí)行單元分配至第二數(shù)據(jù)處理任務的執(zhí)行,第一執(zhí)行單元執(zhí)行完畢一個數(shù)據(jù)處理任務的第一子任務時,第一執(zhí)行單元可以處理其他數(shù)據(jù)處理任務的第一子任務,避免了一個數(shù)據(jù)處理任務中的子任務均執(zhí)行完畢后,才開始執(zhí)行其他數(shù)據(jù)處理任務,減少了等待時間,從而提高了數(shù)據(jù)任務處理的效率。