[發(fā)明專利]任務(wù)的處理方法、裝置和服務(wù)器有效
| 申請?zhí)枺?/td> | 201911035713.0 | 申請日: | 2019-10-29 |
| 公開(公告)號: | CN110737534B | 公開(公告)日: | 2021-05-25 |
| 發(fā)明(設(shè)計)人: | 李感恩 | 申請(專利權(quán))人: | 京東數(shù)字科技控股有限公司 |
| 主分類號: | G06F9/52 | 分類號: | G06F9/52;G06F9/50 |
| 代理公司: | 北京同立鈞成知識產(chǎn)權(quán)代理有限公司 11205 | 代理人: | 張曉霞;劉芳 |
| 地址: | 100176 北京市北京經(jīng)濟*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 任務(wù) 處理 方法 裝置 服務(wù)器 | ||
本發(fā)明實施例提供一種任務(wù)的處理方法、裝置和服務(wù)器,在接收到包括待處理的一個或者多個任務(wù)的任務(wù)標識或者任務(wù)對象的任務(wù)請求時,可以先將該一個或者多個任務(wù)的任務(wù)標識或任務(wù)對象添加在分布式阻塞隊列中,并在接收到數(shù)據(jù)請求時,將分布式阻塞隊列中最靠前的目標任務(wù)的任務(wù)標識或任務(wù)對象發(fā)送給多個節(jié)點設(shè)備的線程池中最先搶占任務(wù)的目標線程,以通過目標線程處理目標任務(wù),從而實現(xiàn)了對多個節(jié)點設(shè)備的線程池進行統(tǒng)一調(diào)度,以通過調(diào)度的線程處理待處理的任務(wù),從而提高了整個集群中每一個節(jié)點設(shè)備的CPU利用率。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種任務(wù)的處理方法、裝置和服務(wù)器。
背景技術(shù)
在數(shù)據(jù)庫的業(yè)務(wù)系統(tǒng)中,通常會存在大量的后臺任務(wù)(task)需要處理,在采用單線程進行任務(wù)處理時,由于線程從數(shù)據(jù)庫中大量讀取和寫入數(shù)據(jù)耗時較長,且在該時間段時,該線程會一直處于等待狀態(tài),即該線程會處于阻塞狀態(tài),這樣會對中央處理器(centralprocessing unit,CPU)的利用率造成限制。
為了提高CPU的利用率,且提高后臺任務(wù)的運行效率,服務(wù)器可以采用多線程進行任務(wù)處理,即在同一時間段,可以通過該多個線程并行處理任務(wù),這樣可以避免采用但單線程的方式對CPU的利用率造成限制,從而實現(xiàn)了在提高CPU利用率的同時,提高了后臺任務(wù)的運行效率。
但是,利用多線程的方式,僅能提高運行該多線程的單個節(jié)點設(shè)備的CPU利用率,而無法提高整個集群中其它節(jié)點設(shè)備的CPU利用率。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種任務(wù)的處理方法、裝置和服務(wù)器,在進行分布式任務(wù)調(diào)度服務(wù)時,提高了整個集群中每一個節(jié)點設(shè)備的CPU利用率。
第一方面,本發(fā)明實施例提供一種任務(wù)的處理方法,應(yīng)用于分布式任務(wù)調(diào)度服務(wù),所述分布式任務(wù)調(diào)度服務(wù)用于調(diào)度多個節(jié)點設(shè)備的線程池,每一個節(jié)點設(shè)備的線程池中均包括多個線程,該任務(wù)的處理方法可以包括:
接收任務(wù)請求;所述任務(wù)請求中包括待處理的一個或者多個任務(wù)的任務(wù)標識或任務(wù)對象。
將所述一個或者多個任務(wù)的任務(wù)標識或任務(wù)對象添加在分布式阻塞隊列中。
在接收數(shù)據(jù)請求時,將所述分布式阻塞隊列中最靠前的目標任務(wù)的任務(wù)標識或任務(wù)對象發(fā)送給所述多個節(jié)點設(shè)備的線程池中最先搶占任務(wù)的目標線程,以通過所述目標線程處理所述目標任務(wù)。
在一種可能的實現(xiàn)方式中,所述接收任務(wù)請求之前,還包括:
檢測所述分布式阻塞隊列當前的隊列長度。
根據(jù)所述當前的隊列長度,確定所述分布式阻塞隊列可再容納任務(wù)的任務(wù)標識或任務(wù)對象。
在一種可能的實現(xiàn)方式中,該任務(wù)的處理方法還可以包括:
在所述分布式阻塞隊列可再容納任務(wù)的任務(wù)標識或任務(wù)對象時,接收每一個節(jié)點設(shè)備上報的線程池中線程的狀態(tài)信息;所述狀態(tài)信息為空閑狀態(tài)或者忙碌狀態(tài)。
若所述線程池中存在狀態(tài)信息為空閑狀態(tài)的第一線程,且所述第一線程的空閑時長大于預設(shè)閾值時,銷毀所述第一線程。
在一種可能的實現(xiàn)方式中,該任務(wù)的處理方法還可以包括:
在確定所述分布式阻塞隊列無法再容納任務(wù)的任務(wù)標識或任務(wù)對象時,停止接收任務(wù)請求,直至所述分布式阻塞隊列中有任務(wù)被處理,且所述分布式阻塞隊列可再容納任務(wù)的任務(wù)標識或任務(wù)對象。
在一種可能的實現(xiàn)方式中,該任務(wù)的處理方法還可以包括:
在所述分布式阻塞隊列無法再容納任務(wù)的任務(wù)標識或任務(wù)對象時,接收每一個節(jié)點設(shè)備上報的線程池中線程的狀態(tài)信息;所述狀態(tài)信息為空閑狀態(tài)或者忙碌狀態(tài)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于京東數(shù)字科技控股有限公司,未經(jīng)京東數(shù)字科技控股有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911035713.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





