[發明專利]任務調度方法和裝置有效
| 申請號: | 201610074460.8 | 申請日: | 2016-02-02 |
| 公開(公告)號: | CN105786600B | 公開(公告)日: | 2019-05-03 |
| 發明(設計)人: | 趙勇 | 申請(專利權)人: | 北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/50 |
| 代理公司: | 北京英賽嘉華知識產權代理有限責任公司 11204 | 代理人: | 王達佐;馬曉亞 |
| 地址: | 100080 北京市海淀區杏石口路6*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 任務 調度 方法 裝置 | ||
本申請公開了任務調度方法和裝置。所述方法的一具體實施方式包括:獲取任務和所有執行機的執行機信息;根據所述所有執行機的執行機任務信息將所述所有執行機的工作狀態標記為空閑或非空閑;在工作狀態為空閑或非空閑的執行機中選定最優執行機;將所述任務調度給所述最優執行機。該實施方式解決了分布式任務調度中各執行機負載不均衡的問題。
技術領域
本申請涉及計算機技術領域,具體涉及互聯網技術領域,尤其涉及分布式任務調度方法及裝置。
背景技術
在分布式系統中,各執行機執行任務時,因任務處理的事務、執行時間或頻率的不同,造成執行任務耗時、耗資源等各不相同,由此導致在高并發執行任務時執行機負載失衡。如任務輪詢分配到執行機上時,某幾個任務執行時間長,執行耗費資源多,會擠壓很多執行任務。當正在執行任務到達最大并發量時,會擠壓更多的排隊任務,此時,其他執行機可能處于空閑狀態而無法利用最終導致執行機負載不均衡,因此需要合理的任務調度方法。
現有的任務調度方法包括如下幾個步驟:
1、先將任務以輪詢的方式創建到各個執行機上;
2、當任務定時啟動或手動啟動之后任務開始執行;
3、如果執行機的正在執行任務處于最大并發量時,后啟動的任務則加入等待隊列;
4、當并行執行任務完成后再獲取隊列中的任務執行;
5、重復執行步驟2到步驟4。
這種任務調度方法,由于任務執行頻率不同、執行時長和消耗資源的不同,造成分布式執行機的資源利用不均勻,最終影響執行任務在非空閑的執行機進行排隊等待,而空閑的執行機處于閑置狀態,無法真正實現執行機的負載均衡。當執行機一旦不可訪問,執行機上所有任務將無法再次執行。
發明內容
本申請的目的在于提出一種改進的任務調度方法和任務調度裝置,來解決以上背景技術部分提到的技術問題。
第一方面,本申請提供了一種任務調度方法,所述方法包括:
獲取任務和所有執行機的執行機信息,其中,所述執行機信息包括:工作狀態、任務信息、訪問狀態和使用率,所述執行機工作狀態包括:空閑和非空閑,所述執行機任務信息包括:未啟動任務數、正在執行任務數和排隊任務數,正在執行任務數與排隊任務數之和為啟動任務數,未啟動任務數與啟動任務數之和為總任務數;根據所述所有執行機的任務信息將所述所有執行機的工作狀態標記為空閑或非空閑;如果存在工作狀態為空閑的執行機,則:獲取所有工作狀態為空閑的執行機的任務信息;計算所述各工作狀態為空閑的執行機總任務數與所述各工作狀態為空閑的執行機最大并發量比值并排序,選取比值最小的工作狀態為空閑的執行機為最優執行機,其中,所述執行機最大并發量為所述執行機并行執行任務數的最大值;如果不存在工作狀態為空閑的執行機,則:獲取所述所有工作狀態為非空閑的執行機的任務信息;計算所述各工作狀態為非空閑的執行機的啟動任務數與所述各工作狀態為非空閑的執行機最大并發量比值并排序,選取比值最小的工作狀態為非空閑的執行機為最優執行機;將所述任務調度給所述最優執行機。
在一些實施例中,所述獲取任務和所有執行機的執行機信息之前還包括:生成任務并為所述任務分配執行機;獲取所述執行機的任務信息;如果所述執行機的啟動任務數小于所述執行機的最大并發量,則將所述任務直接在所述執行機執行。
在一些實施例中,所述執行機訪問狀態包括:可訪問、不可訪問,所述獲取任務和所有執行機的執行機信息包括:獲取任務;獲取所有執行機的訪問狀態;獲取所有訪問狀態為可訪問的執行機的執行機信息。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司,未經北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610074460.8/2.html,轉載請聲明來源鉆瓜專利網。





