[發明專利]任務處理方法及裝置有效
| 申請號: | 201710029055.9 | 申請日: | 2017-01-16 |
| 公開(公告)號: | CN108319495B | 公開(公告)日: | 2023-01-31 |
| 發明(設計)人: | 唐家勇 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/50 |
| 代理公司: | 北京博思佳知識產權代理有限公司 11415 | 代理人: | 林祥 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 任務 處理 方法 裝置 | ||
本申請實施例提供一種任務處理方法及裝置。所述方法包括:將待處理的父任務分解成一個或多個互不依賴的子任務;將分解得到的所述一個或多個互不依賴的子任務添加到線程池的任務隊列中;利用所述線程池中的工作線程依次從所述任務隊列中取出各子任務并執行,獲得與每一子任務對應的執行結果并添加到與所述父任務對應的結果列表中;其中所述執行結果在所述子任務執行異常時包含異常信息;當所述父任務對應的結果列表中存在至少一個包含所述異常信息的執行結果時,將所述結果列表中存在的所述異常信息反饋至用戶端。本申請可使得用戶根據異常信息確定異常原因。
技術領域
本申請涉及計算機技術領域,尤其涉及一種任務處理方法及裝置。
背景技術
為充分利用計算資源并減少任務的處理時間,任務處理過程通常可采取“并行-同步”模式。其中,在“并行-同步”模式中,父任務可以被分解為多個互不依賴的子任務,分解得到的這些子任務可以在多個線程中并行執行,最終將每一子任務的執行結果進行歸并,以得到所述父任務的結果。
在相關技術中,父任務所分解得到的各個子任務被添加到包含多個工作線程的線程池中進行執行,在對每一子任務進行并行執行的過程中,難免會出現異常,目前在出現異常時,由于無法反饋任務執行過程的異常信息,造成任務管理者無法確定異常原因。
發明內容
有鑒于此,本申請提供一種任務處理方法及裝置。
為實現上述目的,本申請提供技術方案如下:
根據本申請的第一方面,提出了一種任務處理方法,包括:
將待處理的父任務分解成一個或多個互不依賴的子任務;
將分解得到的所述一個或多個互不依賴的子任務添加到線程池的任務隊列中;
利用所述線程池中的工作線程依次從所述任務隊列中取出各子任務并執行,獲得與每一子任務對應的執行結果并添加到與所述父任務對應的結果列表中;其中所述執行結果在所述子任務執行異常時包含異常信息;
當所述父任務對應的結果列表中存在至少一個包含所述異常信息的執行結果時,將所述結果列表中存在的所述異常信息反饋至用戶端。
根據本申請的第二方面,提出了一種任務處理裝置,包括:
分解單元,將待處理的父任務分解成一個或多個互不依賴的子任務;
第一添加單元,用于將分解得到的所述一個或多個互不依賴的子任務添加到線程池的任務隊列中;
執行單元,用于利用所述線程池中的工作線程依次從所述任務隊列中取出各子任務并執行,獲得與每一子任務對應的執行結果并添加到與所述父任務對應的結果列表中;其中所述執行結果在所述子任務執行異常時包含異常信息;
異常反饋單元,用于當所述父任務對應的結果列表中存在至少一個包含所述異常信息的執行結果時,將所述結果列表中存在的所述異常信息反饋至用戶端。
由以上技術方案可見,通過將父任務分解得到的各個子任務添加到線程池的任務隊列中,并利用線程池中的工作線程對各子任務并執行,獲得與每一子任務對應的執行結果并添加到與所述父任務對應的結果列表中。其中,由于所述執行結果在所述子任務執行異常時包含異常信息,當所述父任務對應的結果列表中存在至少一個包含所述異常信息的執行結果時,表明所述父任務的執行過程出現異常,則將所述結果列表中存在的所述異常信息反饋至用戶端。在上述過程中,由于在任務執行過程出現異常時,可將與子任務對應的異常信息反饋至用戶端,從而使得任務管理者能夠根據異常信息確定異常原因,提升任務管理者的使用體驗。
附圖說明
圖1是本申請一實施例中的用于實現任務執行和任務管理的系統架構示意圖;
圖2是本申請一實施例中的一種并行-同步任務調度器的模塊示意圖;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710029055.9/2.html,轉載請聲明來源鉆瓜專利網。





