本發(fā)明涉及計算機技術領域,尤其涉及一種基于線程池的業(yè)務處理方法及裝置。
背景技術:
如今,隨著金融業(yè)的蓬勃發(fā)展,金融系統(tǒng)中無論是實時處理系統(tǒng)或是批量處理系統(tǒng)面對的數據壓力越來越大。而隨著數據的爆發(fā)式的增長,大部分金融系統(tǒng)都已經完成分布式儲存數據,相關技術也越來越成熟。業(yè)務處理中常常伴隨著復雜的數據庫操作,為了實現對分布式數據庫的管理,提高業(yè)務處理效率,線程池是一種非常有效的業(yè)務處理機制。
目前,基于線程池業(yè)務處理系統(tǒng)主要有同步單數據庫線程池系統(tǒng)和異步多數據線程池系統(tǒng)兩種。其中,異步多數據線程池系統(tǒng)因其不需等待,異步處理等高效率處理特征而被越來越廣泛的使用。然而,異步多數據線程池沒有權重功能,不能支持優(yōu)先級的線程處理,使得異步多數據線程池不能優(yōu)先處理緊急任務和重要任務。
綜上所述,目前的線程池處理系統(tǒng)在處理業(yè)務時不具備優(yōu)先級功能。
技術實現要素:
本發(fā)明提供一種基于線程池的業(yè)務處理方法及裝置,用以使線程池處理系統(tǒng)處理業(yè)務時能夠具備優(yōu)先級功能。
本發(fā)明實施例提供一種基于線程池的業(yè)務處理方法,包括:
接收待處理業(yè)務并解析待處理業(yè)務為N個任務;N大于等于1;
根據待處理業(yè)務的業(yè)務類型,獲取待處理業(yè)務的配置文件;配置文件中包含了待處理業(yè)務的任務隊列信息和待處理業(yè)務解析的各任務的任務優(yōu)先級;
根據各任務的任務優(yōu)先級,將N個任務放入待處理業(yè)務所對應的任務隊列中;任務隊列具有優(yōu)先級;
根據任務隊列優(yōu)先級,依次將N個任務放入線程池中。
可選地,配置文件中還包含待處理業(yè)務的線程池信息,
根據任務隊列優(yōu)先級,依次將N個任務放入線程池中之前,還包括:
根據所述待處理業(yè)務的線程池信息,確定所述線程池中所述待處理業(yè)務對的M個線程;
將待處理業(yè)務所對應的任務隊列中的任務與M個線程關聯。
可選地,配置文件中還包含了數據庫信息,
根據任務隊列優(yōu)先級,依次將N個任務放入線程池中之前,還包括:
根據數據庫信息,將M個線程與數據庫信息中記載的數據庫相連接。
可選地,任務隊列按優(yōu)先級從高到低共分為先入先出FIFO隊列、權重隊列、后入先出LIFO隊列以及外置隊列;
外置隊列用于保存關鍵任務,關鍵任務為N個任務中的部分或全部;
根據任務隊列優(yōu)先級,依次將N個任務放入線程池中之后,還包括:
針對N個任務中的每一個任務,接收任務的回調信息;
根據回調信息,判斷任務是否執(zhí)行成功;
若任務為執(zhí)行失敗,則確定任務在外置隊列中對應的關鍵任務,并返回執(zhí)行關鍵任務。
可選地,線程池為線程池系統(tǒng)中的任一個線程池;線程池系統(tǒng)中的任一線程池能夠獲取其它線程池對應的數據庫資源;
根據任務隊列優(yōu)先級,依次將N個任務放入線程池中之后,還包括:
根據N個任務的執(zhí)行情況,判斷線程池的執(zhí)行效率;
若線程池的執(zhí)行效率低于預設閾值,則從線程池系統(tǒng)中獲取替代線程池;替代線程池為線程池系統(tǒng)中處理速度高于線程池的線程池;
將N個任務中的未處理任務全部或部分調至替代線程池對應的任務隊列中。
本發(fā)明實施例提供一種基于線程池的業(yè)務處理裝置,包括:
解析模塊,用于接收待處理業(yè)務并解析待處理業(yè)務為N個任務;N大于等于1;
獲取模塊,用于根據待處理業(yè)務的業(yè)務類型,獲取待處理業(yè)務的配置文件;配置文件中包含了待處理業(yè)務的任務隊列信息和待處理業(yè)務解析的各任務的任務優(yōu)先級;
配置模塊,用于根據各任務的任務優(yōu)先級,將N個任務放入待處理業(yè)務所對應的任務隊列中;任務隊列具有優(yōu)先級;
調度模塊,用于根據任務隊列優(yōu)先級,依次將N個任務放入線程池中。
可選地,配置文件中還包含待處理業(yè)務的線程池信息,
配置模塊還用于:
根據所述待處理業(yè)務的線程池信息,確定所述線程池中所述待處理業(yè)務對的M個線程;
將待處理業(yè)務所對應的任務隊列中的任務與M個線程關聯。
可選地,配置文件中還包含了數據庫信息,
配置模塊還用于根據數據庫信息,將M個線程與數據庫信息中記載的數據庫相連接。
可選地,任務隊列按優(yōu)先級從高到低共分為先入先出FIFO隊列、權重隊列、后入先出LIFO隊列以及外置隊列;
外置隊列用于保存關鍵任務,關鍵任務為N個任務中的部分或全部;
調度模塊還用于:
針對N個任務中的每一個任務,接收任務的回調信息;
根據回調信息,判斷任務是否執(zhí)行成功;
若任務為執(zhí)行失敗,則確定任務在外置隊列中對應的關鍵任務,并返回執(zhí)行關鍵任務。
可選地,線程池為線程池系統(tǒng)中的任一個線程池;線程池系統(tǒng)中的任一線程池能夠獲取其它線程池對應的數據庫資源;
調度模塊還用于:
根據N個任務的執(zhí)行情況,判斷線程池的執(zhí)行效率;
若線程池的執(zhí)行效率低于預設閾值,則從線程池系統(tǒng)中獲取替代線程池;替代線程池為線程池系統(tǒng)中處理速度高于線程池的線程池;
將N個任務中的未處理任務全部或部分調至替代線程池對應的任務隊列中。
綜上所述,本發(fā)明實施例提供了一種基于線程池的業(yè)務處理方法及裝置,包括:接收待處理業(yè)務并解析待處理業(yè)務為N個任務;N大于等于1;根據待處理業(yè)務的業(yè)務類型,獲取待處理業(yè)務的配置文件;配置文件中包含了待處理業(yè)務的任務隊列信息和待處理業(yè)務解析的各任務的任務優(yōu)先級;根據各任務的任務優(yōu)先級,將N個任務放入待處理業(yè)務所對應的任務隊列中;任務隊列具有優(yōu)先級;根據任務隊列優(yōu)先級,依次將N個任務放入線程池中。根據待處理業(yè)務的業(yè)務類型,將由待處理業(yè)務解析來的N個任務放入待處理業(yè)務對應的任務隊列中,由于任務隊列具有優(yōu)先級,因此在任務調度時,會對優(yōu)先級較高的業(yè)務解析而來的任務進行優(yōu)先處理,此外,任務隊列中的任務也會根據優(yōu)先級進行排列,使得業(yè)務中的重要任務能夠被優(yōu)先處理,所以,采用本發(fā)明所述的業(yè)務處理方法處理業(yè)務,不僅能夠按優(yōu)先級處理業(yè)務,還能對業(yè)務拆分來的任務也進行優(yōu)先級處理。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域的普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種基于線程池的業(yè)務處理方法流程示意圖;
圖2為本發(fā)明實施例提供的一種業(yè)務類型、權重值以及任務隊列之間的關系;
圖3為本發(fā)明實施例提供的一種動態(tài)調度示意圖;
圖4為本發(fā)明實施例提供的一種分布式線程池系統(tǒng)架構;
圖5為本發(fā)明實施例提供的一種基于線程池的業(yè)務處理裝置結構示意圖。
具體實施方式
為了使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明作進一步地詳細描述,顯然,所描述的實施例僅僅是本發(fā)明一部份實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明實施例提供的一種基于線程池的業(yè)務處理方法流程示意圖,如圖1所示,包括以下步驟:
S101:接收待處理業(yè)務并解析待處理業(yè)務為N個任務;N大于等于1;
S102:根據待處理業(yè)務的業(yè)務類型,獲取待處理業(yè)務的配置文件;配置文件中包含了待處理業(yè)務的任務隊列信息和待處理業(yè)務解析的各任務的任務優(yōu)先級;
S103:根據各任務的任務優(yōu)先級,將N個任務放入待處理業(yè)務所對應的任務隊列中;任務隊列具有優(yōu)先級;
S104:根據任務隊列優(yōu)先級,依次將N個任務放入線程池中。
在步驟S101的具體實施過程中,一般通過一個應用程序編程接口(Application Programming Interface,API)接收待處理業(yè)務,待處理業(yè)務由多個任務組合而成,可以被解析為多個任務,對于待處理業(yè)務的處理也就是對解析出的多個任務的處理。
在步驟S102的具體實施過程中,每一種業(yè)務類型都對應著一個預先設置的配置文件,根據待處理業(yè)務的業(yè)務類型獲取待處理業(yè)務對應的配置文件,例如,查詢業(yè)務對應著配置文件1,交易業(yè)務對應著配置文件2,配置文件1和配置文件2都是預先設置的配置文件,當待處理業(yè)務為查詢業(yè)務時,則獲取配置文件1,當待處理業(yè)務為交易業(yè)務時,則獲取配置文件2??蛇x地,線程池中具有多個任務隊列,配置文件中包含了待處理業(yè)務的任務隊列信息,以及待處理業(yè)務解析的各任務的任務優(yōu)先級。例如,查詢業(yè)務的配置文件為配置文件1,則,配置文件1中記錄了查詢業(yè)務對應的任務隊列A,以及,查詢業(yè)務解析出的各任務的任務優(yōu)先級,可選地,這里的任務優(yōu)先級以權重值區(qū)分,對于普通任務,其權重值為正,權重值越大,優(yōu)先級越高,對于重要任務,其權重值為負,權重值越大,優(yōu)先級越高,通過正負將待處理業(yè)務解析出的任務劃分為兩類,方便后續(xù)優(yōu)先級處理。
在步驟S103的具體實施過程中,待處理業(yè)務對應的配置文件中包含了待處理業(yè)務解析出的N個任務的優(yōu)先級,將N個任務放入任務隊列時,需根據N個任務各自的優(yōu)先級信息放入。用來接納N個任務的任務隊列也具有優(yōu)先級區(qū)分,線程池中具有多個任務隊列,每個隊列間具有不同的優(yōu)先級,配置文件中記載著待處理業(yè)務對應的任務隊列信息,也就意味著根據業(yè)務類型為待處理業(yè)務配置了不同的優(yōu)先級。例如,配置文件1中記錄了查詢業(yè)務對應的任務隊列A,配置文件2中記錄了交易業(yè)務對應的任務隊列B,任務隊列B的優(yōu)先級高于任務隊列A,則任務隊列B中的任務將會先于任務隊列A中的任務被處理,也即,優(yōu)先處理交易業(yè)務解析出的多個任務,而查詢業(yè)務解析出的多個任務將會在處理完交易業(yè)務解析出的多個任務之后才會被處理。對于一個待處理業(yè)務解析出的N個任務,也具任務優(yōu)先級區(qū)分,在放置入對于的任務隊列時,需按優(yōu)先級順序放入,例如,交易業(yè)務B解析出了N個任務,在將這N個任務放入任務隊列B時,需按照優(yōu)先級順序放入以使優(yōu)先級高的任務可以被優(yōu)先處理。
可選地,配置文件中還包含待處理業(yè)務的線程池信息,根據任務隊列優(yōu)先級,依次將N個任務放入線程池中之前,還包括:根據待處理業(yè)務的線程池信息,確定線程池中待處理業(yè)務對的M個線程;M個線程用于處理N個任務。在正式處理N個任務之前,還需對處理任務的線程池進行配置??蛇x地,線程池有可能是一個獨立線程池,也可能是隸屬于分布式線程池系統(tǒng)的一個線程池??蛇x地,對于一個具有多個線程池的分布式線程池系統(tǒng),可以先遍歷每一個線程池的運行狀態(tài),選擇其中運行速度和資源狀況等綜合條件最優(yōu)的線程池作為處理這N個任務的線程池。配置文件中包含了待處理業(yè)務的線程池信息,線程池信息記錄了處理該待處理業(yè)務所需的線程數量M,當確定線程池之后,根據線程池信息從線程池中劃分出M個線程,這M個線程將被單獨用于處理該待處理業(yè)務解析出的任務。例如,線程池中共有1000個線程,交易業(yè)務對應的配置文件2中線程池信息為100個線程,則需從線程池中劃分出100個線程來處理交易業(yè)務,這100個線程即可滿足交易業(yè)務解析出的多個任務的處理需求。根據配置文件中的線程池信息來為待處理業(yè)務配置線程,使得配置的線程即可以滿足待處理業(yè)務的需求,又不會浪費線程池的資源,從而可以提高線程池中的線程利用率,優(yōu)化線程池的內存規(guī)劃,提高線程池的處理效率。可選地,根據實際應用需求或經驗設置默認線程個數,當配置文件中不包含線程池信息時,按默認個數為待處理業(yè)務配置線程池中的線程。
可選地,配置文件中還包含了數據庫信息,根據任務隊列優(yōu)先級,依次將N個任務放入線程池中之前,還包括:根據數據庫信息,將M個線程與數據庫信息中記載的數據庫相連接。線程池處理任務需要調度數據庫中的數據資源,因此,配置文件中還包含了數據庫信息,數據庫信息為處理該待處理業(yè)務所需的數據庫信息,例如,處理交易業(yè)務需要調度數據庫1和數據庫2的資源,則交易業(yè)務對應的配置文件2中的數據庫信息為數據庫1和數據庫2。將M個線程與數據庫中記載的數據庫向連接,指的是,將數據庫信息保存于線程池中,當進行任務處理時,M個線程將根據數據庫信息從指定的數據庫中調度資源,如交易業(yè)務的數據庫信息為數據庫1和數據庫2,則線程池在處理交易業(yè)務解析出的任務時,將從數據庫1和數據庫2調度數據資源。配置文件中加入數據庫信息可以實現同時操作分布式多數據庫,當需要增加新的數據庫以支撐業(yè)務處理時,只需在配置文件中增加相應的數據庫信息即可。
在步驟S104的具體實施過程中,每個任務隊列具有不同的優(yōu)先級,可選地,優(yōu)先將先級高的任務隊列中的任務放入線程池中。
可選地,任務隊列按優(yōu)先級從高到低共分為先入先出FIFO隊列、權重隊列、后入先出LIFO隊列以及外置隊列;外置隊列用于保存關鍵任務,關鍵任務為N個任務中的部分或全部;根據任務隊列優(yōu)先級,依次將N個任務放入線程池中之后,還包括:針對N個任務中的每一個任務,接收任務的回調信息;根據回調信息,判斷任務是否執(zhí)行成功;若任務為執(zhí)行失敗,則確定任務在外置隊列中對應的關鍵任務,并返回執(zhí)行關鍵任務。外置隊列用于保存關鍵任務,一般情況下,外置隊列中的任務并不會執(zhí)行,關鍵任務是待處理業(yè)務中解析出的N個任務中的部分或全部??蛇x地,當待處理業(yè)務具有極高的重要性,且解析出的任務并不多時,將所有解析出的任務都保存于外置隊列中。可選地,當待處理業(yè)務的重要性一般或解析出的任務過多時,將其中的部分任務作為關鍵任務保存于外置隊列中,可選地,關鍵任務可以根據表示任務優(yōu)先級的權重進行劃分,如,將權重為負值的任務作為關鍵任務保存于外置隊列中。將每一個任務調度進線程池進行處理,都會獲得一個回調信息用來表示任務的完成情況。
圖2為本發(fā)明實施例提供的一種業(yè)務類型、權重值以及任務隊列之間的關系,如圖2所示,以權重表示各種業(yè)務的優(yōu)先級,對于普通業(yè)務,權重值為正,權重值越大,優(yōu)先級越高,對于重要業(yè)務,權重值為負,權重值越大,優(yōu)先級越高。對于查詢類業(yè)務一般具有較低的權重值,因此其解析出的多個任務被放入優(yōu)先級最低的FIFO隊列,金融類業(yè)務較查詢類業(yè)務更為重要,因此被放入內置隊列中,當內置隊列內存不足時,也會被放入外置隊列,對于秒殺類操作,其優(yōu)先級最高,被放入LIFO隊列。
具體實施時,針對N個任務中的每一個任務,接收任務的回調信息;根據回調信息,判斷任務是否執(zhí)行成功;若任務為執(zhí)行失敗,則確定任務在外置隊列中對應的關鍵任務,并返回執(zhí)行關鍵任務。任務執(zhí)行失敗存在兩種情況,一種情況是執(zhí)行失敗的任務為關鍵任務,此時,只需直接從外置隊列中提取保存的此任務并返回執(zhí)行即可,另一種情況是執(zhí)行失敗的任務為普通任務,外置隊列中并未保存,則應從外置隊列中提取距離此普通任務最近的已執(zhí)行的關鍵任務,并返回處理??蛇x地,當其它隊列內存不夠用時,外置隊列也會參與任務調度。
在外置隊列中保存關鍵任務為系統(tǒng)提供了一種快照功能,使得任務處理發(fā)生錯誤時,可通過恢復關鍵任務的方式返回重新處理,增強了系統(tǒng)的可用性。此外,只需提取外置隊列中的關鍵任務即可返回,而不需根據錯誤類型和處理結果返回不同的API接口,因此,本實施例還提供了一種極其友好簡單的API接口。
可選地,線程池為線程池系統(tǒng)中的任一個線程池;線程池系統(tǒng)中的任一線程池能夠獲取其它線程池對應的數據庫資源;根據任務隊列優(yōu)先級,依次將N個任務放入線程池中之后,還包括:根據N個任務的執(zhí)行情況,判斷線程池的執(zhí)行效率;若線程池的執(zhí)行效率低于預設閾值,則從線程池系統(tǒng)中獲取替代線程池;替代線程池為線程池系統(tǒng)中處理速度高于線程池的線程池;將N個任務中的未處理任務全部或部分調至替代線程池對應的任務隊列中。分布式線程池系統(tǒng)中具有多個線程池,每個線程池對任務的處理效率會存在差異,資源壓力也會有所不同,當處理該待處理業(yè)務的線程池的處理效率低于預設閾值時,可以將該待處理業(yè)務解析出的任務分散給其它線程池處理。分布式線程池系統(tǒng)的各個線程池中,含有調用其它線程池對應的數據庫資源的線程,使得每一個線程池都有處理其它線程池業(yè)務的能力。圖3為本發(fā)明實施例提供的一種動態(tài)調度示意圖,如圖3所示,業(yè)務APP1和業(yè)務APP2都解析出了300個任務,分別由線程池a和線程池b處理,由于線程池a的數據庫資源充足,任務處理效率高,一段時間后,業(yè)務APP1還剩30個任務,而業(yè)務APP2還剩200個任務,線程池b的處理速度低于預設閾值,此時,將業(yè)務APP2剩下的200個任務中的部分或者全部調度到業(yè)務APP1對應的任務隊列中,由業(yè)務APP1對應的線程池a協助線程池b處理業(yè)務APP2剩余的任務。采用這種動態(tài)調度的方法,可以加速業(yè)務處理過程,充分利用線程池資源。此外,還可以橫向擴展和部署,對于復雜業(yè)務,可以將解析出的任務分散于多個線程池中,減輕了單個線程池的工作壓力,提高了業(yè)務處理過程。
圖4為本發(fā)明實施例提供的一種分布式線程池系統(tǒng)架構,如圖4所示,APP1、APP2、…、APPN代表該分布式線程池系統(tǒng)的N種待處理業(yè)務類型,線程池1、…、線程池N為本線程池具有的N個線程池,每一個線程池都有四種隊列,圖4中示例性示出了一個線程池具有的任務隊列:LIFO隊列、內置隊列隊列、FIFO隊列和外置隊列,管理器負責根據待處理業(yè)務的執(zhí)行語句,將待處理業(yè)務解析為多個任務,確定并解析待處理業(yè)務對應的配置文件,并根據配置文件中的信息配置任務隊列、線程池以及數據庫,調度器按照隊列優(yōu)先級依次將任務調度至線程池,節(jié)點1、節(jié)點2、…、節(jié)點N為該分布式線程池系統(tǒng)具有的N個數據庫節(jié)點,為該分布式線程池系統(tǒng)提供數據資源。
綜上所述,本發(fā)明實施例提供了一種基于線程池的業(yè)務處理方法,包括:接收待處理業(yè)務并解析待處理業(yè)務為N個任務;N大于等于1;根據待處理業(yè)務的業(yè)務類型,獲取待處理業(yè)務的配置文件;配置文件中包含了待處理業(yè)務的任務隊列信息和待處理業(yè)務解析的各任務的任務優(yōu)先級;根據各任務的任務優(yōu)先級,將N個任務放入待處理業(yè)務所對應的任務隊列中;任務隊列具有優(yōu)先級;根據任務隊列優(yōu)先級,依次將N個任務放入線程池中。根據待處理業(yè)務的業(yè)務類型,將由待處理業(yè)務解析來的N個任務放入待處理業(yè)務對應的任務隊列中,由于任務隊列具有優(yōu)先級,因此在任務調度時,會對優(yōu)先級較高的業(yè)務解析而來的任務進行優(yōu)先處理,此外,任務隊列中的任務也會根據優(yōu)先級進行排列,使得業(yè)務中的重要任務能夠被優(yōu)先處理,所以,采用本發(fā)明所述的業(yè)務處理方法處理業(yè)務,不僅能夠按優(yōu)先級處理業(yè)務,還能對業(yè)務拆分來的任務也進行優(yōu)先級處理。
基于相同的技術構思,本發(fā)明實施例提供一種基于線程池的業(yè)務處理裝置,該裝置可以實現上述技術方法。圖5為本發(fā)明實施例提供的一種基于線程池的業(yè)務處理裝置結構示意圖,如圖5所示,處理裝置500包括解析模塊501、獲取模塊502、配置模塊503和調度模塊504,其中,
解析模塊501,用于接收待處理業(yè)務并解析待處理業(yè)務為N個任務;N大于等于1;
獲取模塊502,用于根據待處理業(yè)務的業(yè)務類型,獲取待處理業(yè)務的配置文件;配置文件中包含了待處理業(yè)務的任務隊列信息和待處理業(yè)務解析的各任務的任務優(yōu)先級;
配置模塊503,用于根據各任務的任務優(yōu)先級,將N個任務放入待處理業(yè)務所對應的任務隊列中;任務隊列具有優(yōu)先級;
調度模塊504,用于根據任務隊列優(yōu)先級,依次將N個任務放入線程池中。
可選地,配置文件中還包含待處理業(yè)務的線程池信息,
配置模塊503還用于:
根據待處理業(yè)務的線程池信息,確定線程池中待處理業(yè)務對的M個線程;
將待處理業(yè)務所對應的任務隊列中的任務與M個線程關聯。
可選地,配置文件中還包含了數據庫信息,
配置模塊503,還用于:
根據數據庫信息,將M個線程與數據庫信息中記載的數據庫相連接。
可選地,任務隊列按優(yōu)先級從高到低共分為先入先出FIFO隊列、權重隊列、后入先出LIFO隊列以及外置隊列;
外置隊列用于保存關鍵任務,關鍵任務為N個任務中的部分或全部;
調度模塊504還用于:
針對N個任務中的每一個任務,接收任務的回調信息;
根據回調信息,判斷任務是否執(zhí)行成功;
若任務為執(zhí)行失敗,則確定任務在外置隊列中對應的關鍵任務,并返回執(zhí)行關鍵任務。
可選地,線程池為線程池系統(tǒng)中的任一個線程池;線程池系統(tǒng)中的任一線程池能夠獲取其它線程池對應的數據庫資源;
調度模塊504還用于:
根據N個任務的執(zhí)行情況,判斷線程池的執(zhí)行效率;
若線程池的執(zhí)行效率低于預設閾值,則從線程池系統(tǒng)中獲取替代線程池;替代線程池為線程池系統(tǒng)中處理速度高于線程池的線程池;
將N個任務中的未處理任務全部或部分調至替代線程池對應的任務隊列中。
綜上所述,本發(fā)明實施例提供了一種基于線程池的業(yè)務處理方法及裝置,包括:接收待處理業(yè)務并解析待處理業(yè)務為N個任務;N大于等于1;根據待處理業(yè)務的業(yè)務類型,獲取待處理業(yè)務的配置文件;配置文件中包含了待處理業(yè)務的任務隊列信息和待處理業(yè)務解析的各任務的任務優(yōu)先級;根據各任務的任務優(yōu)先級,將N個任務放入待處理業(yè)務所對應的任務隊列中;任務隊列具有優(yōu)先級;根據任務隊列優(yōu)先級,依次將N個任務放入線程池中。根據待處理業(yè)務的業(yè)務類型,將由待處理業(yè)務解析來的N個任務放入待處理業(yè)務對應的任務隊列中,由于任務隊列具有優(yōu)先級,因此在任務調度時,會對優(yōu)先級較高的業(yè)務解析而來的任務進行優(yōu)先處理,此外,任務隊列中的任務也會根據優(yōu)先級進行排列,使得業(yè)務中的重要任務能夠被優(yōu)先處理,所以,采用本發(fā)明所述的業(yè)務處理方法處理業(yè)務,不僅能夠按優(yōu)先級處理業(yè)務,還能對業(yè)務拆分來的任務也進行優(yōu)先級處理。
本發(fā)明是參照根據本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執(zhí)行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實施例,但本領域內的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。