[發明專利]一種基于緩沖隊列和哈希環的任務調度方法和裝置在審
| 申請號: | 202011031102.1 | 申請日: | 2020-09-27 |
| 公開(公告)號: | CN112231079A | 公開(公告)日: | 2021-01-15 |
| 發明(設計)人: | 顧海 | 申請(專利權)人: | 武漢物易云通網絡科技有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/50;G06F16/22;G06F16/2455 |
| 代理公司: | 深圳市六加知識產權代理有限公司 44372 | 代理人: | 崔肖肖;向彬 |
| 地址: | 430000 湖北省武漢市東湖新技術開*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 緩沖 隊列 哈希環 任務 調度 方法 裝置 | ||
1.一種基于緩沖隊列和哈希環的任務調度方法,其特征在于,任務調度器中設有哈希環定時器和哈希環存儲器,哈希環存儲器中設有執行指針以及環形等間隔排列的多個槽位,執行指針轉動一圈的時間與所述哈希環定時器的定時時間一致;則任務調度方法包括:
任務接收器接收到任務調度信息后,將任務編號和任務結束時間寫入本地緩存,將任務的執行頻率和執行邏輯寫入本地的緩沖隊列;
定時拉取線程以固定頻率從所述緩沖隊列中拉取任務,由哈希環定時器基于所述執行頻率將任務放于哈希環存儲器對應槽位的任務列表中;
哈希環定時器以所述固定頻率轉動所述哈希環存儲器上的執行指針,并取出執行指針所指槽位的任務列表中已到執行時間的任務;
哈希環定時器基于任務編號向任務接收器詢問取出的任務是否已停止,如果由對應的任務結束時間判斷任務沒有停止,則將任務的執行邏輯分發給異步執行器進行異步執行。
2.根據權利要求1所述的基于緩沖隊列和哈希環的任務調度方法,其特征在于,如果任務沒有停止,則哈希環定時器將任務的執行邏輯分發給異步執行器之后,再次將任務放回所述哈希環存儲器上該任務在取出之前所在槽位的任務列表中。
3.根據權利要求1所述的基于緩沖隊列和哈希環的任務調度方法,其特征在于,所述本地緩存是任務接收器在本機設置的一個KV數據結構;則所述將任務編號和任務結束時間寫入本地緩存具體為:
任務接收器為接收到的任務設置一個唯一的任務編號,并將本地緩存中KV數據結構的key設置為任務編號,value設置為對應的任務結束時間,從而實現將任務編號和任務結束時間寫入本地緩存;其中,如果接收到的任務沒有任務結束時間,則將value設置為空。
4.根據權利要求3所述的基于緩沖隊列和哈希環的任務調度方法,其特征在于,所述哈希環定時器基于任務編號向任務接收器詢問取出的任務是否已停止,如果由對應的任務結束時間判斷任務沒有停止,則將任務的執行邏輯分發給異步執行器進行異步執行,具體為:
哈希環定時器根據取出的任務對應的任務編號,去所述任務接收器的本地緩存中查詢對應的任務結束時間;如果任務結束時間為空或者任務結束時間大于當前時間,表示任務沒有停止,則哈希環定時器將任務的執行邏輯分發給異步執行器,由異步執行器按照所述執行邏輯執行該任務。
5.根據權利要求1所述的基于緩沖隊列和哈希環的任務調度方法,其特征在于,任務調度器中設有多個不同精度的哈希環定時器,每個哈希環定時器對應一種哈希環存儲器;則所述定時拉取線程以固定頻率從所述緩沖隊列中拉取任務,由哈希環定時器基于所述執行頻率將任務放于哈希環存儲器對應槽位的任務列表中,具體為:
任務調度器啟動定時拉取線程以固定頻率從所述緩沖隊列中拉取任務,并根據任務的執行頻率判斷任務應使用的哈希環定時器,判斷完成后將拉取到的任務放入對應的哈希環定時器;
哈希環定時器基于任務的執行頻率計算任務應放于對應哈希環存儲器的槽位位置,計算完成后將任務放于對應哈希環存儲器上該槽位的任務列表中。
6.根據權利要求5所述的基于緩沖隊列和哈希環的任務調度方法,其特征在于,任務調度器中設置有四個不同精度的哈希環定時器,分別為30秒哈希環定時器、60秒哈希環定時器、300秒哈希環定時器和1800秒哈希環定時器,對應四種不同的哈希環存儲器;則所述根據任務的執行頻率判斷任務應使用的哈希環定時器具體為:
當任務的執行頻率大于等于30秒小于60秒時,使用30秒哈希環定時器;當任務的執行頻率大于等于60秒小于300秒時,使用60秒哈希環定時器;當任務的執行頻率大于等于300秒小于1800秒時,使用300秒哈希環定時器;當任務的執行頻率大于等于1800秒時,使用1800秒哈希環定時器。
7.根據權利要求1-6任一所述的基于緩沖隊列和哈希環的任務調度方法,其特征在于,在任務接收器接收到任務調度信息后,所述方法還包括:
任務接收器實時接收該任務對應的任務結束時間,并對所述本地緩存中的任務結束時間進行更新,以便在該任務下一次被調度時,根據所述本地緩存中更新后的任務結束時間判斷任務是否被停止,進而確定是否執行該任務。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢物易云通網絡科技有限公司,未經武漢物易云通網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011031102.1/1.html,轉載請聲明來源鉆瓜專利網。





