欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于線程池的業(yè)務(wù)處理方法及裝置與流程

文檔序號:12550443閱讀:196來源:國知局
一種基于線程池的業(yè)務(wù)處理方法及裝置與流程

本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種基于線程池的業(yè)務(wù)處理方法及裝置。



背景技術(shù):

如今,隨著金融業(yè)的蓬勃發(fā)展,金融系統(tǒng)中無論是實(shí)時(shí)處理系統(tǒng)或是批量處理系統(tǒng)面對的數(shù)據(jù)壓力越來越大。而隨著數(shù)據(jù)的爆發(fā)式的增長,大部分金融系統(tǒng)都已經(jīng)完成分布式儲(chǔ)存數(shù)據(jù),相關(guān)技術(shù)也越來越成熟。業(yè)務(wù)處理中常常伴隨著復(fù)雜的數(shù)據(jù)庫操作,為了實(shí)現(xiàn)對分布式數(shù)據(jù)庫的管理,提高業(yè)務(wù)處理效率,線程池是一種非常有效的業(yè)務(wù)處理機(jī)制。

目前,基于線程池業(yè)務(wù)處理系統(tǒng)主要有同步單數(shù)據(jù)庫線程池系統(tǒng)和異步多數(shù)據(jù)線程池系統(tǒng)兩種。其中,異步多數(shù)據(jù)線程池系統(tǒng)因其不需等待,異步處理等高效率處理特征而被越來越廣泛的使用。然而,異步多數(shù)據(jù)線程池沒有權(quán)重功能,不能支持優(yōu)先級的線程處理,使得異步多數(shù)據(jù)線程池不能優(yōu)先處理緊急任務(wù)和重要任務(wù)。

綜上所述,目前的線程池處理系統(tǒng)在處理業(yè)務(wù)時(shí)不具備優(yōu)先級功能。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明提供一種基于線程池的業(yè)務(wù)處理方法及裝置,用以使線程池處理系統(tǒng)處理業(yè)務(wù)時(shí)能夠具備優(yōu)先級功能。

本發(fā)明實(shí)施例提供一種基于線程池的業(yè)務(wù)處理方法,包括:

接收待處理業(yè)務(wù)并解析待處理業(yè)務(wù)為N個(gè)任務(wù);N大于等于1;

根據(jù)待處理業(yè)務(wù)的業(yè)務(wù)類型,獲取待處理業(yè)務(wù)的配置文件;配置文件中包含了待處理業(yè)務(wù)的任務(wù)隊(duì)列信息和待處理業(yè)務(wù)解析的各任務(wù)的任務(wù)優(yōu)先級;

根據(jù)各任務(wù)的任務(wù)優(yōu)先級,將N個(gè)任務(wù)放入待處理業(yè)務(wù)所對應(yīng)的任務(wù)隊(duì)列中;任務(wù)隊(duì)列具有優(yōu)先級;

根據(jù)任務(wù)隊(duì)列優(yōu)先級,依次將N個(gè)任務(wù)放入線程池中。

可選地,配置文件中還包含待處理業(yè)務(wù)的線程池信息,

根據(jù)任務(wù)隊(duì)列優(yōu)先級,依次將N個(gè)任務(wù)放入線程池中之前,還包括:

根據(jù)所述待處理業(yè)務(wù)的線程池信息,確定所述線程池中所述待處理業(yè)務(wù)對的M個(gè)線程;

將待處理業(yè)務(wù)所對應(yīng)的任務(wù)隊(duì)列中的任務(wù)與M個(gè)線程關(guān)聯(lián)。

可選地,配置文件中還包含了數(shù)據(jù)庫信息,

根據(jù)任務(wù)隊(duì)列優(yōu)先級,依次將N個(gè)任務(wù)放入線程池中之前,還包括:

根據(jù)數(shù)據(jù)庫信息,將M個(gè)線程與數(shù)據(jù)庫信息中記載的數(shù)據(jù)庫相連接。

可選地,任務(wù)隊(duì)列按優(yōu)先級從高到低共分為先入先出FIFO隊(duì)列、權(quán)重隊(duì)列、后入先出LIFO隊(duì)列以及外置隊(duì)列;

外置隊(duì)列用于保存關(guān)鍵任務(wù),關(guān)鍵任務(wù)為N個(gè)任務(wù)中的部分或全部;

根據(jù)任務(wù)隊(duì)列優(yōu)先級,依次將N個(gè)任務(wù)放入線程池中之后,還包括:

針對N個(gè)任務(wù)中的每一個(gè)任務(wù),接收任務(wù)的回調(diào)信息;

根據(jù)回調(diào)信息,判斷任務(wù)是否執(zhí)行成功;

若任務(wù)為執(zhí)行失敗,則確定任務(wù)在外置隊(duì)列中對應(yīng)的關(guān)鍵任務(wù),并返回執(zhí)行關(guān)鍵任務(wù)。

可選地,線程池為線程池系統(tǒng)中的任一個(gè)線程池;線程池系統(tǒng)中的任一線程池能夠獲取其它線程池對應(yīng)的數(shù)據(jù)庫資源;

根據(jù)任務(wù)隊(duì)列優(yōu)先級,依次將N個(gè)任務(wù)放入線程池中之后,還包括:

根據(jù)N個(gè)任務(wù)的執(zhí)行情況,判斷線程池的執(zhí)行效率;

若線程池的執(zhí)行效率低于預(yù)設(shè)閾值,則從線程池系統(tǒng)中獲取替代線程池;替代線程池為線程池系統(tǒng)中處理速度高于線程池的線程池;

將N個(gè)任務(wù)中的未處理任務(wù)全部或部分調(diào)至替代線程池對應(yīng)的任務(wù)隊(duì)列中。

本發(fā)明實(shí)施例提供一種基于線程池的業(yè)務(wù)處理裝置,包括:

解析模塊,用于接收待處理業(yè)務(wù)并解析待處理業(yè)務(wù)為N個(gè)任務(wù);N大于等于1;

獲取模塊,用于根據(jù)待處理業(yè)務(wù)的業(yè)務(wù)類型,獲取待處理業(yè)務(wù)的配置文件;配置文件中包含了待處理業(yè)務(wù)的任務(wù)隊(duì)列信息和待處理業(yè)務(wù)解析的各任務(wù)的任務(wù)優(yōu)先級;

配置模塊,用于根據(jù)各任務(wù)的任務(wù)優(yōu)先級,將N個(gè)任務(wù)放入待處理業(yè)務(wù)所對應(yīng)的任務(wù)隊(duì)列中;任務(wù)隊(duì)列具有優(yōu)先級;

調(diào)度模塊,用于根據(jù)任務(wù)隊(duì)列優(yōu)先級,依次將N個(gè)任務(wù)放入線程池中。

可選地,配置文件中還包含待處理業(yè)務(wù)的線程池信息,

配置模塊還用于:

根據(jù)所述待處理業(yè)務(wù)的線程池信息,確定所述線程池中所述待處理業(yè)務(wù)對的M個(gè)線程;

將待處理業(yè)務(wù)所對應(yīng)的任務(wù)隊(duì)列中的任務(wù)與M個(gè)線程關(guān)聯(lián)。

可選地,配置文件中還包含了數(shù)據(jù)庫信息,

配置模塊還用于根據(jù)數(shù)據(jù)庫信息,將M個(gè)線程與數(shù)據(jù)庫信息中記載的數(shù)據(jù)庫相連接。

可選地,任務(wù)隊(duì)列按優(yōu)先級從高到低共分為先入先出FIFO隊(duì)列、權(quán)重隊(duì)列、后入先出LIFO隊(duì)列以及外置隊(duì)列;

外置隊(duì)列用于保存關(guān)鍵任務(wù),關(guān)鍵任務(wù)為N個(gè)任務(wù)中的部分或全部;

調(diào)度模塊還用于:

針對N個(gè)任務(wù)中的每一個(gè)任務(wù),接收任務(wù)的回調(diào)信息;

根據(jù)回調(diào)信息,判斷任務(wù)是否執(zhí)行成功;

若任務(wù)為執(zhí)行失敗,則確定任務(wù)在外置隊(duì)列中對應(yīng)的關(guān)鍵任務(wù),并返回執(zhí)行關(guān)鍵任務(wù)。

可選地,線程池為線程池系統(tǒng)中的任一個(gè)線程池;線程池系統(tǒng)中的任一線程池能夠獲取其它線程池對應(yīng)的數(shù)據(jù)庫資源;

調(diào)度模塊還用于:

根據(jù)N個(gè)任務(wù)的執(zhí)行情況,判斷線程池的執(zhí)行效率;

若線程池的執(zhí)行效率低于預(yù)設(shè)閾值,則從線程池系統(tǒng)中獲取替代線程池;替代線程池為線程池系統(tǒng)中處理速度高于線程池的線程池;

將N個(gè)任務(wù)中的未處理任務(wù)全部或部分調(diào)至替代線程池對應(yīng)的任務(wù)隊(duì)列中。

綜上所述,本發(fā)明實(shí)施例提供了一種基于線程池的業(yè)務(wù)處理方法及裝置,包括:接收待處理業(yè)務(wù)并解析待處理業(yè)務(wù)為N個(gè)任務(wù);N大于等于1;根據(jù)待處理業(yè)務(wù)的業(yè)務(wù)類型,獲取待處理業(yè)務(wù)的配置文件;配置文件中包含了待處理業(yè)務(wù)的任務(wù)隊(duì)列信息和待處理業(yè)務(wù)解析的各任務(wù)的任務(wù)優(yōu)先級;根據(jù)各任務(wù)的任務(wù)優(yōu)先級,將N個(gè)任務(wù)放入待處理業(yè)務(wù)所對應(yīng)的任務(wù)隊(duì)列中;任務(wù)隊(duì)列具有優(yōu)先級;根據(jù)任務(wù)隊(duì)列優(yōu)先級,依次將N個(gè)任務(wù)放入線程池中。根據(jù)待處理業(yè)務(wù)的業(yè)務(wù)類型,將由待處理業(yè)務(wù)解析來的N個(gè)任務(wù)放入待處理業(yè)務(wù)對應(yīng)的任務(wù)隊(duì)列中,由于任務(wù)隊(duì)列具有優(yōu)先級,因此在任務(wù)調(diào)度時(shí),會(huì)對優(yōu)先級較高的業(yè)務(wù)解析而來的任務(wù)進(jìn)行優(yōu)先處理,此外,任務(wù)隊(duì)列中的任務(wù)也會(huì)根據(jù)優(yōu)先級進(jìn)行排列,使得業(yè)務(wù)中的重要任務(wù)能夠被優(yōu)先處理,所以,采用本發(fā)明所述的業(yè)務(wù)處理方法處理業(yè)務(wù),不僅能夠按優(yōu)先級處理業(yè)務(wù),還能對業(yè)務(wù)拆分來的任務(wù)也進(jìn)行優(yōu)先級處理。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明實(shí)施例提供的一種基于線程池的業(yè)務(wù)處理方法流程示意圖;

圖2為本發(fā)明實(shí)施例提供的一種業(yè)務(wù)類型、權(quán)重值以及任務(wù)隊(duì)列之間的關(guān)系;

圖3為本發(fā)明實(shí)施例提供的一種動(dòng)態(tài)調(diào)度示意圖;

圖4為本發(fā)明實(shí)施例提供的一種分布式線程池系統(tǒng)架構(gòu);

圖5為本發(fā)明實(shí)施例提供的一種基于線程池的業(yè)務(wù)處理裝置結(jié)構(gòu)示意圖。

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部份實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

圖1為本發(fā)明實(shí)施例提供的一種基于線程池的業(yè)務(wù)處理方法流程示意圖,如圖1所示,包括以下步驟:

S101:接收待處理業(yè)務(wù)并解析待處理業(yè)務(wù)為N個(gè)任務(wù);N大于等于1;

S102:根據(jù)待處理業(yè)務(wù)的業(yè)務(wù)類型,獲取待處理業(yè)務(wù)的配置文件;配置文件中包含了待處理業(yè)務(wù)的任務(wù)隊(duì)列信息和待處理業(yè)務(wù)解析的各任務(wù)的任務(wù)優(yōu)先級;

S103:根據(jù)各任務(wù)的任務(wù)優(yōu)先級,將N個(gè)任務(wù)放入待處理業(yè)務(wù)所對應(yīng)的任務(wù)隊(duì)列中;任務(wù)隊(duì)列具有優(yōu)先級;

S104:根據(jù)任務(wù)隊(duì)列優(yōu)先級,依次將N個(gè)任務(wù)放入線程池中。

在步驟S101的具體實(shí)施過程中,一般通過一個(gè)應(yīng)用程序編程接口(Application Programming Interface,API)接收待處理業(yè)務(wù),待處理業(yè)務(wù)由多個(gè)任務(wù)組合而成,可以被解析為多個(gè)任務(wù),對于待處理業(yè)務(wù)的處理也就是對解析出的多個(gè)任務(wù)的處理。

在步驟S102的具體實(shí)施過程中,每一種業(yè)務(wù)類型都對應(yīng)著一個(gè)預(yù)先設(shè)置的配置文件,根據(jù)待處理業(yè)務(wù)的業(yè)務(wù)類型獲取待處理業(yè)務(wù)對應(yīng)的配置文件,例如,查詢業(yè)務(wù)對應(yīng)著配置文件1,交易業(yè)務(wù)對應(yīng)著配置文件2,配置文件1和配置文件2都是預(yù)先設(shè)置的配置文件,當(dāng)待處理業(yè)務(wù)為查詢業(yè)務(wù)時(shí),則獲取配置文件1,當(dāng)待處理業(yè)務(wù)為交易業(yè)務(wù)時(shí),則獲取配置文件2??蛇x地,線程池中具有多個(gè)任務(wù)隊(duì)列,配置文件中包含了待處理業(yè)務(wù)的任務(wù)隊(duì)列信息,以及待處理業(yè)務(wù)解析的各任務(wù)的任務(wù)優(yōu)先級。例如,查詢業(yè)務(wù)的配置文件為配置文件1,則,配置文件1中記錄了查詢業(yè)務(wù)對應(yīng)的任務(wù)隊(duì)列A,以及,查詢業(yè)務(wù)解析出的各任務(wù)的任務(wù)優(yōu)先級,可選地,這里的任務(wù)優(yōu)先級以權(quán)重值區(qū)分,對于普通任務(wù),其權(quán)重值為正,權(quán)重值越大,優(yōu)先級越高,對于重要任務(wù),其權(quán)重值為負(fù),權(quán)重值越大,優(yōu)先級越高,通過正負(fù)將待處理業(yè)務(wù)解析出的任務(wù)劃分為兩類,方便后續(xù)優(yōu)先級處理。

在步驟S103的具體實(shí)施過程中,待處理業(yè)務(wù)對應(yīng)的配置文件中包含了待處理業(yè)務(wù)解析出的N個(gè)任務(wù)的優(yōu)先級,將N個(gè)任務(wù)放入任務(wù)隊(duì)列時(shí),需根據(jù)N個(gè)任務(wù)各自的優(yōu)先級信息放入。用來接納N個(gè)任務(wù)的任務(wù)隊(duì)列也具有優(yōu)先級區(qū)分,線程池中具有多個(gè)任務(wù)隊(duì)列,每個(gè)隊(duì)列間具有不同的優(yōu)先級,配置文件中記載著待處理業(yè)務(wù)對應(yīng)的任務(wù)隊(duì)列信息,也就意味著根據(jù)業(yè)務(wù)類型為待處理業(yè)務(wù)配置了不同的優(yōu)先級。例如,配置文件1中記錄了查詢業(yè)務(wù)對應(yīng)的任務(wù)隊(duì)列A,配置文件2中記錄了交易業(yè)務(wù)對應(yīng)的任務(wù)隊(duì)列B,任務(wù)隊(duì)列B的優(yōu)先級高于任務(wù)隊(duì)列A,則任務(wù)隊(duì)列B中的任務(wù)將會(huì)先于任務(wù)隊(duì)列A中的任務(wù)被處理,也即,優(yōu)先處理交易業(yè)務(wù)解析出的多個(gè)任務(wù),而查詢業(yè)務(wù)解析出的多個(gè)任務(wù)將會(huì)在處理完交易業(yè)務(wù)解析出的多個(gè)任務(wù)之后才會(huì)被處理。對于一個(gè)待處理業(yè)務(wù)解析出的N個(gè)任務(wù),也具任務(wù)優(yōu)先級區(qū)分,在放置入對于的任務(wù)隊(duì)列時(shí),需按優(yōu)先級順序放入,例如,交易業(yè)務(wù)B解析出了N個(gè)任務(wù),在將這N個(gè)任務(wù)放入任務(wù)隊(duì)列B時(shí),需按照優(yōu)先級順序放入以使優(yōu)先級高的任務(wù)可以被優(yōu)先處理。

可選地,配置文件中還包含待處理業(yè)務(wù)的線程池信息,根據(jù)任務(wù)隊(duì)列優(yōu)先級,依次將N個(gè)任務(wù)放入線程池中之前,還包括:根據(jù)待處理業(yè)務(wù)的線程池信息,確定線程池中待處理業(yè)務(wù)對的M個(gè)線程;M個(gè)線程用于處理N個(gè)任務(wù)。在正式處理N個(gè)任務(wù)之前,還需對處理任務(wù)的線程池進(jìn)行配置??蛇x地,線程池有可能是一個(gè)獨(dú)立線程池,也可能是隸屬于分布式線程池系統(tǒng)的一個(gè)線程池??蛇x地,對于一個(gè)具有多個(gè)線程池的分布式線程池系統(tǒng),可以先遍歷每一個(gè)線程池的運(yùn)行狀態(tài),選擇其中運(yùn)行速度和資源狀況等綜合條件最優(yōu)的線程池作為處理這N個(gè)任務(wù)的線程池。配置文件中包含了待處理業(yè)務(wù)的線程池信息,線程池信息記錄了處理該待處理業(yè)務(wù)所需的線程數(shù)量M,當(dāng)確定線程池之后,根據(jù)線程池信息從線程池中劃分出M個(gè)線程,這M個(gè)線程將被單獨(dú)用于處理該待處理業(yè)務(wù)解析出的任務(wù)。例如,線程池中共有1000個(gè)線程,交易業(yè)務(wù)對應(yīng)的配置文件2中線程池信息為100個(gè)線程,則需從線程池中劃分出100個(gè)線程來處理交易業(yè)務(wù),這100個(gè)線程即可滿足交易業(yè)務(wù)解析出的多個(gè)任務(wù)的處理需求。根據(jù)配置文件中的線程池信息來為待處理業(yè)務(wù)配置線程,使得配置的線程即可以滿足待處理業(yè)務(wù)的需求,又不會(huì)浪費(fèi)線程池的資源,從而可以提高線程池中的線程利用率,優(yōu)化線程池的內(nèi)存規(guī)劃,提高線程池的處理效率??蛇x地,根據(jù)實(shí)際應(yīng)用需求或經(jīng)驗(yàn)設(shè)置默認(rèn)線程個(gè)數(shù),當(dāng)配置文件中不包含線程池信息時(shí),按默認(rèn)個(gè)數(shù)為待處理業(yè)務(wù)配置線程池中的線程。

可選地,配置文件中還包含了數(shù)據(jù)庫信息,根據(jù)任務(wù)隊(duì)列優(yōu)先級,依次將N個(gè)任務(wù)放入線程池中之前,還包括:根據(jù)數(shù)據(jù)庫信息,將M個(gè)線程與數(shù)據(jù)庫信息中記載的數(shù)據(jù)庫相連接。線程池處理任務(wù)需要調(diào)度數(shù)據(jù)庫中的數(shù)據(jù)資源,因此,配置文件中還包含了數(shù)據(jù)庫信息,數(shù)據(jù)庫信息為處理該待處理業(yè)務(wù)所需的數(shù)據(jù)庫信息,例如,處理交易業(yè)務(wù)需要調(diào)度數(shù)據(jù)庫1和數(shù)據(jù)庫2的資源,則交易業(yè)務(wù)對應(yīng)的配置文件2中的數(shù)據(jù)庫信息為數(shù)據(jù)庫1和數(shù)據(jù)庫2。將M個(gè)線程與數(shù)據(jù)庫中記載的數(shù)據(jù)庫向連接,指的是,將數(shù)據(jù)庫信息保存于線程池中,當(dāng)進(jìn)行任務(wù)處理時(shí),M個(gè)線程將根據(jù)數(shù)據(jù)庫信息從指定的數(shù)據(jù)庫中調(diào)度資源,如交易業(yè)務(wù)的數(shù)據(jù)庫信息為數(shù)據(jù)庫1和數(shù)據(jù)庫2,則線程池在處理交易業(yè)務(wù)解析出的任務(wù)時(shí),將從數(shù)據(jù)庫1和數(shù)據(jù)庫2調(diào)度數(shù)據(jù)資源。配置文件中加入數(shù)據(jù)庫信息可以實(shí)現(xiàn)同時(shí)操作分布式多數(shù)據(jù)庫,當(dāng)需要增加新的數(shù)據(jù)庫以支撐業(yè)務(wù)處理時(shí),只需在配置文件中增加相應(yīng)的數(shù)據(jù)庫信息即可。

在步驟S104的具體實(shí)施過程中,每個(gè)任務(wù)隊(duì)列具有不同的優(yōu)先級,可選地,優(yōu)先將先級高的任務(wù)隊(duì)列中的任務(wù)放入線程池中。

可選地,任務(wù)隊(duì)列按優(yōu)先級從高到低共分為先入先出FIFO隊(duì)列、權(quán)重隊(duì)列、后入先出LIFO隊(duì)列以及外置隊(duì)列;外置隊(duì)列用于保存關(guān)鍵任務(wù),關(guān)鍵任務(wù)為N個(gè)任務(wù)中的部分或全部;根據(jù)任務(wù)隊(duì)列優(yōu)先級,依次將N個(gè)任務(wù)放入線程池中之后,還包括:針對N個(gè)任務(wù)中的每一個(gè)任務(wù),接收任務(wù)的回調(diào)信息;根據(jù)回調(diào)信息,判斷任務(wù)是否執(zhí)行成功;若任務(wù)為執(zhí)行失敗,則確定任務(wù)在外置隊(duì)列中對應(yīng)的關(guān)鍵任務(wù),并返回執(zhí)行關(guān)鍵任務(wù)。外置隊(duì)列用于保存關(guān)鍵任務(wù),一般情況下,外置隊(duì)列中的任務(wù)并不會(huì)執(zhí)行,關(guān)鍵任務(wù)是待處理業(yè)務(wù)中解析出的N個(gè)任務(wù)中的部分或全部。可選地,當(dāng)待處理業(yè)務(wù)具有極高的重要性,且解析出的任務(wù)并不多時(shí),將所有解析出的任務(wù)都保存于外置隊(duì)列中。可選地,當(dāng)待處理業(yè)務(wù)的重要性一般或解析出的任務(wù)過多時(shí),將其中的部分任務(wù)作為關(guān)鍵任務(wù)保存于外置隊(duì)列中,可選地,關(guān)鍵任務(wù)可以根據(jù)表示任務(wù)優(yōu)先級的權(quán)重進(jìn)行劃分,如,將權(quán)重為負(fù)值的任務(wù)作為關(guān)鍵任務(wù)保存于外置隊(duì)列中。將每一個(gè)任務(wù)調(diào)度進(jìn)線程池進(jìn)行處理,都會(huì)獲得一個(gè)回調(diào)信息用來表示任務(wù)的完成情況。

圖2為本發(fā)明實(shí)施例提供的一種業(yè)務(wù)類型、權(quán)重值以及任務(wù)隊(duì)列之間的關(guān)系,如圖2所示,以權(quán)重表示各種業(yè)務(wù)的優(yōu)先級,對于普通業(yè)務(wù),權(quán)重值為正,權(quán)重值越大,優(yōu)先級越高,對于重要業(yè)務(wù),權(quán)重值為負(fù),權(quán)重值越大,優(yōu)先級越高。對于查詢類業(yè)務(wù)一般具有較低的權(quán)重值,因此其解析出的多個(gè)任務(wù)被放入優(yōu)先級最低的FIFO隊(duì)列,金融類業(yè)務(wù)較查詢類業(yè)務(wù)更為重要,因此被放入內(nèi)置隊(duì)列中,當(dāng)內(nèi)置隊(duì)列內(nèi)存不足時(shí),也會(huì)被放入外置隊(duì)列,對于秒殺類操作,其優(yōu)先級最高,被放入LIFO隊(duì)列。

具體實(shí)施時(shí),針對N個(gè)任務(wù)中的每一個(gè)任務(wù),接收任務(wù)的回調(diào)信息;根據(jù)回調(diào)信息,判斷任務(wù)是否執(zhí)行成功;若任務(wù)為執(zhí)行失敗,則確定任務(wù)在外置隊(duì)列中對應(yīng)的關(guān)鍵任務(wù),并返回執(zhí)行關(guān)鍵任務(wù)。任務(wù)執(zhí)行失敗存在兩種情況,一種情況是執(zhí)行失敗的任務(wù)為關(guān)鍵任務(wù),此時(shí),只需直接從外置隊(duì)列中提取保存的此任務(wù)并返回執(zhí)行即可,另一種情況是執(zhí)行失敗的任務(wù)為普通任務(wù),外置隊(duì)列中并未保存,則應(yīng)從外置隊(duì)列中提取距離此普通任務(wù)最近的已執(zhí)行的關(guān)鍵任務(wù),并返回處理??蛇x地,當(dāng)其它隊(duì)列內(nèi)存不夠用時(shí),外置隊(duì)列也會(huì)參與任務(wù)調(diào)度。

在外置隊(duì)列中保存關(guān)鍵任務(wù)為系統(tǒng)提供了一種快照功能,使得任務(wù)處理發(fā)生錯(cuò)誤時(shí),可通過恢復(fù)關(guān)鍵任務(wù)的方式返回重新處理,增強(qiáng)了系統(tǒng)的可用性。此外,只需提取外置隊(duì)列中的關(guān)鍵任務(wù)即可返回,而不需根據(jù)錯(cuò)誤類型和處理結(jié)果返回不同的API接口,因此,本實(shí)施例還提供了一種極其友好簡單的API接口。

可選地,線程池為線程池系統(tǒng)中的任一個(gè)線程池;線程池系統(tǒng)中的任一線程池能夠獲取其它線程池對應(yīng)的數(shù)據(jù)庫資源;根據(jù)任務(wù)隊(duì)列優(yōu)先級,依次將N個(gè)任務(wù)放入線程池中之后,還包括:根據(jù)N個(gè)任務(wù)的執(zhí)行情況,判斷線程池的執(zhí)行效率;若線程池的執(zhí)行效率低于預(yù)設(shè)閾值,則從線程池系統(tǒng)中獲取替代線程池;替代線程池為線程池系統(tǒng)中處理速度高于線程池的線程池;將N個(gè)任務(wù)中的未處理任務(wù)全部或部分調(diào)至替代線程池對應(yīng)的任務(wù)隊(duì)列中。分布式線程池系統(tǒng)中具有多個(gè)線程池,每個(gè)線程池對任務(wù)的處理效率會(huì)存在差異,資源壓力也會(huì)有所不同,當(dāng)處理該待處理業(yè)務(wù)的線程池的處理效率低于預(yù)設(shè)閾值時(shí),可以將該待處理業(yè)務(wù)解析出的任務(wù)分散給其它線程池處理。分布式線程池系統(tǒng)的各個(gè)線程池中,含有調(diào)用其它線程池對應(yīng)的數(shù)據(jù)庫資源的線程,使得每一個(gè)線程池都有處理其它線程池業(yè)務(wù)的能力。圖3為本發(fā)明實(shí)施例提供的一種動(dòng)態(tài)調(diào)度示意圖,如圖3所示,業(yè)務(wù)APP1和業(yè)務(wù)APP2都解析出了300個(gè)任務(wù),分別由線程池a和線程池b處理,由于線程池a的數(shù)據(jù)庫資源充足,任務(wù)處理效率高,一段時(shí)間后,業(yè)務(wù)APP1還剩30個(gè)任務(wù),而業(yè)務(wù)APP2還剩200個(gè)任務(wù),線程池b的處理速度低于預(yù)設(shè)閾值,此時(shí),將業(yè)務(wù)APP2剩下的200個(gè)任務(wù)中的部分或者全部調(diào)度到業(yè)務(wù)APP1對應(yīng)的任務(wù)隊(duì)列中,由業(yè)務(wù)APP1對應(yīng)的線程池a協(xié)助線程池b處理業(yè)務(wù)APP2剩余的任務(wù)。采用這種動(dòng)態(tài)調(diào)度的方法,可以加速業(yè)務(wù)處理過程,充分利用線程池資源。此外,還可以橫向擴(kuò)展和部署,對于復(fù)雜業(yè)務(wù),可以將解析出的任務(wù)分散于多個(gè)線程池中,減輕了單個(gè)線程池的工作壓力,提高了業(yè)務(wù)處理過程。

圖4為本發(fā)明實(shí)施例提供的一種分布式線程池系統(tǒng)架構(gòu),如圖4所示,APP1、APP2、…、APPN代表該分布式線程池系統(tǒng)的N種待處理業(yè)務(wù)類型,線程池1、…、線程池N為本線程池具有的N個(gè)線程池,每一個(gè)線程池都有四種隊(duì)列,圖4中示例性示出了一個(gè)線程池具有的任務(wù)隊(duì)列:LIFO隊(duì)列、內(nèi)置隊(duì)列隊(duì)列、FIFO隊(duì)列和外置隊(duì)列,管理器負(fù)責(zé)根據(jù)待處理業(yè)務(wù)的執(zhí)行語句,將待處理業(yè)務(wù)解析為多個(gè)任務(wù),確定并解析待處理業(yè)務(wù)對應(yīng)的配置文件,并根據(jù)配置文件中的信息配置任務(wù)隊(duì)列、線程池以及數(shù)據(jù)庫,調(diào)度器按照隊(duì)列優(yōu)先級依次將任務(wù)調(diào)度至線程池,節(jié)點(diǎn)1、節(jié)點(diǎn)2、…、節(jié)點(diǎn)N為該分布式線程池系統(tǒng)具有的N個(gè)數(shù)據(jù)庫節(jié)點(diǎn),為該分布式線程池系統(tǒng)提供數(shù)據(jù)資源。

綜上所述,本發(fā)明實(shí)施例提供了一種基于線程池的業(yè)務(wù)處理方法,包括:接收待處理業(yè)務(wù)并解析待處理業(yè)務(wù)為N個(gè)任務(wù);N大于等于1;根據(jù)待處理業(yè)務(wù)的業(yè)務(wù)類型,獲取待處理業(yè)務(wù)的配置文件;配置文件中包含了待處理業(yè)務(wù)的任務(wù)隊(duì)列信息和待處理業(yè)務(wù)解析的各任務(wù)的任務(wù)優(yōu)先級;根據(jù)各任務(wù)的任務(wù)優(yōu)先級,將N個(gè)任務(wù)放入待處理業(yè)務(wù)所對應(yīng)的任務(wù)隊(duì)列中;任務(wù)隊(duì)列具有優(yōu)先級;根據(jù)任務(wù)隊(duì)列優(yōu)先級,依次將N個(gè)任務(wù)放入線程池中。根據(jù)待處理業(yè)務(wù)的業(yè)務(wù)類型,將由待處理業(yè)務(wù)解析來的N個(gè)任務(wù)放入待處理業(yè)務(wù)對應(yīng)的任務(wù)隊(duì)列中,由于任務(wù)隊(duì)列具有優(yōu)先級,因此在任務(wù)調(diào)度時(shí),會(huì)對優(yōu)先級較高的業(yè)務(wù)解析而來的任務(wù)進(jìn)行優(yōu)先處理,此外,任務(wù)隊(duì)列中的任務(wù)也會(huì)根據(jù)優(yōu)先級進(jìn)行排列,使得業(yè)務(wù)中的重要任務(wù)能夠被優(yōu)先處理,所以,采用本發(fā)明所述的業(yè)務(wù)處理方法處理業(yè)務(wù),不僅能夠按優(yōu)先級處理業(yè)務(wù),還能對業(yè)務(wù)拆分來的任務(wù)也進(jìn)行優(yōu)先級處理。

基于相同的技術(shù)構(gòu)思,本發(fā)明實(shí)施例提供一種基于線程池的業(yè)務(wù)處理裝置,該裝置可以實(shí)現(xiàn)上述技術(shù)方法。圖5為本發(fā)明實(shí)施例提供的一種基于線程池的業(yè)務(wù)處理裝置結(jié)構(gòu)示意圖,如圖5所示,處理裝置500包括解析模塊501、獲取模塊502、配置模塊503和調(diào)度模塊504,其中,

解析模塊501,用于接收待處理業(yè)務(wù)并解析待處理業(yè)務(wù)為N個(gè)任務(wù);N大于等于1;

獲取模塊502,用于根據(jù)待處理業(yè)務(wù)的業(yè)務(wù)類型,獲取待處理業(yè)務(wù)的配置文件;配置文件中包含了待處理業(yè)務(wù)的任務(wù)隊(duì)列信息和待處理業(yè)務(wù)解析的各任務(wù)的任務(wù)優(yōu)先級;

配置模塊503,用于根據(jù)各任務(wù)的任務(wù)優(yōu)先級,將N個(gè)任務(wù)放入待處理業(yè)務(wù)所對應(yīng)的任務(wù)隊(duì)列中;任務(wù)隊(duì)列具有優(yōu)先級;

調(diào)度模塊504,用于根據(jù)任務(wù)隊(duì)列優(yōu)先級,依次將N個(gè)任務(wù)放入線程池中。

可選地,配置文件中還包含待處理業(yè)務(wù)的線程池信息,

配置模塊503還用于:

根據(jù)待處理業(yè)務(wù)的線程池信息,確定線程池中待處理業(yè)務(wù)對的M個(gè)線程;

將待處理業(yè)務(wù)所對應(yīng)的任務(wù)隊(duì)列中的任務(wù)與M個(gè)線程關(guān)聯(lián)。

可選地,配置文件中還包含了數(shù)據(jù)庫信息,

配置模塊503,還用于:

根據(jù)數(shù)據(jù)庫信息,將M個(gè)線程與數(shù)據(jù)庫信息中記載的數(shù)據(jù)庫相連接。

可選地,任務(wù)隊(duì)列按優(yōu)先級從高到低共分為先入先出FIFO隊(duì)列、權(quán)重隊(duì)列、后入先出LIFO隊(duì)列以及外置隊(duì)列;

外置隊(duì)列用于保存關(guān)鍵任務(wù),關(guān)鍵任務(wù)為N個(gè)任務(wù)中的部分或全部;

調(diào)度模塊504還用于:

針對N個(gè)任務(wù)中的每一個(gè)任務(wù),接收任務(wù)的回調(diào)信息;

根據(jù)回調(diào)信息,判斷任務(wù)是否執(zhí)行成功;

若任務(wù)為執(zhí)行失敗,則確定任務(wù)在外置隊(duì)列中對應(yīng)的關(guān)鍵任務(wù),并返回執(zhí)行關(guān)鍵任務(wù)。

可選地,線程池為線程池系統(tǒng)中的任一個(gè)線程池;線程池系統(tǒng)中的任一線程池能夠獲取其它線程池對應(yīng)的數(shù)據(jù)庫資源;

調(diào)度模塊504還用于:

根據(jù)N個(gè)任務(wù)的執(zhí)行情況,判斷線程池的執(zhí)行效率;

若線程池的執(zhí)行效率低于預(yù)設(shè)閾值,則從線程池系統(tǒng)中獲取替代線程池;替代線程池為線程池系統(tǒng)中處理速度高于線程池的線程池;

將N個(gè)任務(wù)中的未處理任務(wù)全部或部分調(diào)至替代線程池對應(yīng)的任務(wù)隊(duì)列中。

綜上所述,本發(fā)明實(shí)施例提供了一種基于線程池的業(yè)務(wù)處理方法及裝置,包括:接收待處理業(yè)務(wù)并解析待處理業(yè)務(wù)為N個(gè)任務(wù);N大于等于1;根據(jù)待處理業(yè)務(wù)的業(yè)務(wù)類型,獲取待處理業(yè)務(wù)的配置文件;配置文件中包含了待處理業(yè)務(wù)的任務(wù)隊(duì)列信息和待處理業(yè)務(wù)解析的各任務(wù)的任務(wù)優(yōu)先級;根據(jù)各任務(wù)的任務(wù)優(yōu)先級,將N個(gè)任務(wù)放入待處理業(yè)務(wù)所對應(yīng)的任務(wù)隊(duì)列中;任務(wù)隊(duì)列具有優(yōu)先級;根據(jù)任務(wù)隊(duì)列優(yōu)先級,依次將N個(gè)任務(wù)放入線程池中。根據(jù)待處理業(yè)務(wù)的業(yè)務(wù)類型,將由待處理業(yè)務(wù)解析來的N個(gè)任務(wù)放入待處理業(yè)務(wù)對應(yīng)的任務(wù)隊(duì)列中,由于任務(wù)隊(duì)列具有優(yōu)先級,因此在任務(wù)調(diào)度時(shí),會(huì)對優(yōu)先級較高的業(yè)務(wù)解析而來的任務(wù)進(jìn)行優(yōu)先處理,此外,任務(wù)隊(duì)列中的任務(wù)也會(huì)根據(jù)優(yōu)先級進(jìn)行排列,使得業(yè)務(wù)中的重要任務(wù)能夠被優(yōu)先處理,所以,采用本發(fā)明所述的業(yè)務(wù)處理方法處理業(yè)務(wù),不僅能夠按優(yōu)先級處理業(yè)務(wù),還能對業(yè)務(wù)拆分來的任務(wù)也進(jìn)行優(yōu)先級處理。

本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。

這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。

這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。

盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。

顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
防城港市| 云霄县| 招远市| 泉州市| 平罗县| 宕昌县| 巍山| 满城县| 牙克石市| 张家川| 汉寿县| 博湖县| 通城县| 会同县| 寿宁县| 九江市| 射阳县| 巩义市| 灵川县| 大余县| 广元市| 江城| 梧州市| 永和县| 茌平县| 泸水县| 罗源县| 曲麻莱县| 樟树市| 奉新县| 达日县| 高雄县| 承德县| 右玉县| 曲阜市| 灵宝市| 凭祥市| 共和县| 通渭县| 花垣县| 米易县|