亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

網(wǎng)絡(luò)請(qǐng)求異步處理方法及裝置與流程

文檔序號(hào):12132040閱讀:335來源:國(guó)知局
網(wǎng)絡(luò)請(qǐng)求異步處理方法及裝置與流程

本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種網(wǎng)絡(luò)請(qǐng)求異步處理方法及裝置。



背景技術(shù):

隨著網(wǎng)絡(luò)規(guī)模的日益擴(kuò)大,大量并發(fā)的網(wǎng)絡(luò)請(qǐng)求對(duì)服務(wù)器的處理能力帶來了極大的挑戰(zhàn),對(duì)網(wǎng)絡(luò)請(qǐng)求的處理效率成為了衡量服務(wù)器性能的重要指標(biāo)。

通常情況下,服務(wù)器會(huì)配置線程池和任務(wù)隊(duì)列,線程池中包括多個(gè)線程,當(dāng)服務(wù)器接收到客戶端發(fā)送的網(wǎng)絡(luò)請(qǐng)求時(shí),通過任一線程為該網(wǎng)絡(luò)請(qǐng)求創(chuàng)建任務(wù),添加到該任務(wù)隊(duì)列中。之后,當(dāng)線程池中存在空閑的線程時(shí),通過該線程從該任務(wù)隊(duì)列中提取該任務(wù),并執(zhí)行該任務(wù),執(zhí)行完成之后向該客戶端發(fā)送執(zhí)行結(jié)果。

在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:

線程池中的線程同時(shí)負(fù)責(zé)任務(wù)的創(chuàng)建和執(zhí)行,當(dāng)服務(wù)器接收到大量的網(wǎng)絡(luò)請(qǐng)求,為大量的網(wǎng)絡(luò)請(qǐng)求創(chuàng)建任務(wù)時(shí),很容易造成阻塞,而一旦造成阻塞會(huì)導(dǎo)致任務(wù)列表中已經(jīng)創(chuàng)建好的任務(wù)也不能正常執(zhí)行,影響服務(wù)器的處理性能。



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

為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實(shí)施例提供了一種網(wǎng)絡(luò)請(qǐng)求異步處理方法及裝置。所述技術(shù)方案如下:

第一方面,提供了一種網(wǎng)絡(luò)請(qǐng)求異步處理方法,所述方法包括:

應(yīng)用于服務(wù)器中,所述服務(wù)器配置有創(chuàng)建線程池和執(zhí)行線程池,所述創(chuàng)建線程池中包括用于創(chuàng)建任務(wù)的創(chuàng)建線程,所述執(zhí)行線程池中包括用于執(zhí)行任務(wù)的執(zhí)行線程,所述方法包括:

通過所述創(chuàng)建線程,接收客戶端發(fā)送的網(wǎng)絡(luò)請(qǐng)求,并為所述網(wǎng)絡(luò)請(qǐng)求創(chuàng)建任務(wù),將所述任務(wù)添加至任務(wù)隊(duì)列中;

通過所述執(zhí)行線程,從所述任務(wù)隊(duì)列中提取所述任務(wù),并執(zhí)行所述任務(wù);

當(dāng)所述任務(wù)執(zhí)行完成時(shí),通過所述執(zhí)行線程向所述客戶端發(fā)送所述任務(wù)的執(zhí)行結(jié)果。

可選地,所述執(zhí)行線程池中包括多個(gè)執(zhí)行線程,所述通過所述執(zhí)行線程,從所述任務(wù)隊(duì)列中提取所述任務(wù),包括:

調(diào)用所述執(zhí)行線程池中處于空閑狀態(tài)的任一執(zhí)行線程;

通過調(diào)用的執(zhí)行線程,從所述任務(wù)隊(duì)列中提取所述任務(wù)。

可選地,所述任務(wù)隊(duì)列中的多個(gè)任務(wù)按照優(yōu)先級(jí)從高到低的順序排列,所述方法還包括:

調(diào)用所述執(zhí)行線程池中處于空閑狀態(tài)的任一執(zhí)行線程,通過調(diào)用的執(zhí)行線程,從所述任務(wù)隊(duì)列中提取優(yōu)先級(jí)最高的任務(wù)。

可選地,所述服務(wù)器配置有多個(gè)任務(wù)隊(duì)列,每個(gè)任務(wù)隊(duì)列的任務(wù)類型不同;

所述將所述任務(wù)添加至任務(wù)隊(duì)列中,包括:將所述任務(wù)添加至與所述任務(wù)的類型匹配的任務(wù)隊(duì)列中。

可選地,所述服務(wù)器配置有多個(gè)執(zhí)行線程池,每個(gè)執(zhí)行線程池匹配的任務(wù)類型不同,所述通過所述執(zhí)行線程,從所述任務(wù)隊(duì)列中提取所述任務(wù),包括:

從與所述任務(wù)的類型匹配的執(zhí)行線程池中調(diào)用任一執(zhí)行線程,通過調(diào)用的執(zhí)行線程,從所述任務(wù)隊(duì)列中提取所述任務(wù)。

第二方面,提供了一種網(wǎng)絡(luò)請(qǐng)求異步處理裝置,應(yīng)用于服務(wù)器中,所述服務(wù)器配置有創(chuàng)建線程池和執(zhí)行線程池,所述創(chuàng)建線程池中包括用于創(chuàng)建任務(wù)的創(chuàng)建線程,所述執(zhí)行線程池中包括用于執(zhí)行任務(wù)的執(zhí)行線程;所述裝置包括:

接收模塊,用于通過所述創(chuàng)建線程,接收客戶端發(fā)送的網(wǎng)絡(luò)請(qǐng)求;

創(chuàng)建任務(wù)模塊,用于為所述網(wǎng)絡(luò)請(qǐng)求創(chuàng)建任務(wù),將所述任務(wù)添加至任務(wù)隊(duì)列中;

提取任務(wù)模塊,用于通過所述執(zhí)行線程,從所述任務(wù)隊(duì)列中提取所述任務(wù);

任務(wù)執(zhí)行模塊,用于執(zhí)行所述任務(wù);

發(fā)送模塊,用于當(dāng)所述任務(wù)執(zhí)行完成時(shí),通過所述執(zhí)行線程向所述客戶端發(fā)送所述任務(wù)的執(zhí)行結(jié)果。

可選地,所述執(zhí)行線程池中包括多個(gè)執(zhí)行線程,所述裝置包括:

調(diào)用模塊,用于調(diào)用所述執(zhí)行線程池中處于空閑狀態(tài)的任一執(zhí)行線程;

所述提取任務(wù)模塊,用于通過調(diào)用的執(zhí)行線程,從所述任務(wù)隊(duì)列中提取所述任務(wù)。

可選地,所述任務(wù)隊(duì)列中的多個(gè)任務(wù)按照優(yōu)先級(jí)從高到低的順序排列,所述裝置還包括:

調(diào)用模塊,用于調(diào)用所述執(zhí)行線程池中處于空閑狀態(tài)的任一執(zhí)行線程;

所述提取任務(wù)模塊,用于通過調(diào)用的執(zhí)行線程,從所述任務(wù)隊(duì)列中提取優(yōu)先級(jí)最高的任務(wù)。

可選地,所述服務(wù)器配置有多個(gè)任務(wù)隊(duì)列,每個(gè)任務(wù)隊(duì)列的任務(wù)類型不同;

所述創(chuàng)建任務(wù)模塊,用于將所述任務(wù)添加至與所述任務(wù)的類型匹配的任務(wù)隊(duì)列中。

可選地,所述服務(wù)器配置有多個(gè)執(zhí)行線程池,每個(gè)執(zhí)行線程池匹配的任務(wù)類型不同,所述提取任務(wù)模塊用于從與所述任務(wù)的類型匹配的執(zhí)行線程池中調(diào)用任一執(zhí)行線程,通過調(diào)用的執(zhí)行線程,從所述任務(wù)隊(duì)列中提取所述任務(wù)。

本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:

本發(fā)明實(shí)施例提供的方法及裝置,通過分配配置創(chuàng)建線程池和執(zhí)行線程池,提供了一種異步處理機(jī)制,由創(chuàng)建線程池中的創(chuàng)建線程為網(wǎng)絡(luò)請(qǐng)求創(chuàng)建任務(wù),由執(zhí)行線程池中的執(zhí)行線程執(zhí)行任務(wù),將創(chuàng)建過程和執(zhí)行過程在不同的線程池中進(jìn)行處理,即使在接收到大量的網(wǎng)絡(luò)請(qǐng)求時(shí)也可以有序地進(jìn)行處理,不易造成阻塞,而且即使造成阻塞,也不會(huì)影響執(zhí)行線程執(zhí)行任務(wù),提升了服務(wù)器的處理性能,有助于阻塞現(xiàn)象的快速解決。

附圖說明

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

圖1是本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)請(qǐng)求異步處理方法的流程圖;

圖2是本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)請(qǐng)求異步處理方法的流程圖;

圖3是本發(fā)明實(shí)施例提供的一種操作流程示意圖;

圖4是本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)請(qǐng)求異步處理裝置的結(jié)構(gòu)示意圖;

圖5是本發(fā)明實(shí)施例提供的一種服務(wù)器的結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

圖1是本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)請(qǐng)求異步處理方法的流程圖。該發(fā)明實(shí)施例的執(zhí)行主體為服務(wù)器,參見圖1,該服務(wù)器配置有創(chuàng)建線程池和執(zhí)行線程池,該創(chuàng)建線程池中包括用于創(chuàng)建任務(wù)的創(chuàng)建線程,該執(zhí)行線程池中包括用于執(zhí)行任務(wù)的執(zhí)行線程,該方法包括:

101、通過該創(chuàng)建線程,接收客戶端發(fā)送的網(wǎng)絡(luò)請(qǐng)求,并為該網(wǎng)絡(luò)請(qǐng)求創(chuàng)建任務(wù),將該任務(wù)添加至任務(wù)隊(duì)列中。

102、通過該執(zhí)行線程,從該任務(wù)隊(duì)列中提取該任務(wù),并執(zhí)行該任務(wù)。

103、當(dāng)該任務(wù)執(zhí)行完成時(shí),通過該執(zhí)行線程向該客戶端發(fā)送該任務(wù)的執(zhí)行結(jié)果。

本發(fā)明實(shí)施例提供的方法,通過分配配置創(chuàng)建線程池和執(zhí)行線程池,提供了一種異步處理機(jī)制,由創(chuàng)建線程池中的創(chuàng)建線程為網(wǎng)絡(luò)請(qǐng)求創(chuàng)建任務(wù),由執(zhí)行線程池中的執(zhí)行線程執(zhí)行任務(wù),將創(chuàng)建過程和執(zhí)行過程在不同的線程池中進(jìn)行處理,即使在接收到大量的網(wǎng)絡(luò)請(qǐng)求時(shí)也可以有序地進(jìn)行處理,不易造成阻塞,而且即使造成阻塞,也不會(huì)影響執(zhí)行線程執(zhí)行任務(wù),提升了服務(wù)器的處理性能,有助于阻塞現(xiàn)象的快速解決。

可選地,該執(zhí)行線程池中包括多個(gè)執(zhí)行線程,通過該執(zhí)行線程,從該任務(wù)隊(duì)列中提取該任務(wù),包括:

調(diào)用該執(zhí)行線程池中處于空閑狀態(tài)的任一執(zhí)行線程;

通過調(diào)用的執(zhí)行線程,從該任務(wù)隊(duì)列中提取該任務(wù)。

可選地,該任務(wù)隊(duì)列中的多個(gè)任務(wù)按照優(yōu)先級(jí)從高到低的順序排列,該方法還包括:

調(diào)用該執(zhí)行線程池中處于空閑狀態(tài)的任一執(zhí)行線程,通過調(diào)用的執(zhí)行線程,從該任務(wù)隊(duì)列中提取優(yōu)先級(jí)最高的任務(wù)。

可選地,該服務(wù)器配置有多個(gè)執(zhí)行線程池和多個(gè)任務(wù)隊(duì)列,每個(gè)任務(wù)隊(duì)列中的任務(wù)類型不同,每個(gè)執(zhí)行線程池匹配的任務(wù)類型不同;

將該任務(wù)添加至任務(wù)隊(duì)列中,包括:將該任務(wù)添加至與該任務(wù)的類型匹配的任務(wù)隊(duì)列中。

可選地,該通過該執(zhí)行線程,從該任務(wù)隊(duì)列中提取該任務(wù),包括:

從與該任務(wù)的類型匹配的執(zhí)行線程池中調(diào)用任一執(zhí)行線程,通過調(diào)用的執(zhí)行線程,從該任務(wù)隊(duì)列中提取該任務(wù)。

上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本發(fā)明的可選實(shí)施例,在此不再一一贅述。

圖2是本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)請(qǐng)求異步處理方法的流程圖。該發(fā)明實(shí)施例的執(zhí)行主體為服務(wù)器,參見圖2,該方法包括:

201、通過創(chuàng)建線程,接收客戶端發(fā)送的網(wǎng)絡(luò)請(qǐng)求,為該網(wǎng)絡(luò)請(qǐng)求創(chuàng)建任務(wù),將該任務(wù)添加至任務(wù)隊(duì)列中。

其中,該服務(wù)器可以為HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議)服務(wù)器,該服務(wù)器可以接收HTTP網(wǎng)絡(luò)請(qǐng)求,對(duì)接收到的網(wǎng)絡(luò)請(qǐng)求進(jìn)行響應(yīng)。當(dāng)然,該服務(wù)器也可以為其他類型的服務(wù)器,本發(fā)明實(shí)施例對(duì)此不做限定。

本發(fā)明實(shí)施例中,該服務(wù)器配置有創(chuàng)建線程池和執(zhí)行線程池,該創(chuàng)建線程池中包括一個(gè)或多個(gè)創(chuàng)建線程,每個(gè)創(chuàng)建線程用于為接收到的網(wǎng)絡(luò)請(qǐng)求創(chuàng)建任務(wù),該執(zhí)行線程池中包括一個(gè)或多個(gè)執(zhí)行線程,每個(gè)執(zhí)行線程用于執(zhí)行任務(wù)。

那么,在實(shí)際的應(yīng)用中,當(dāng)某一客戶端向該服務(wù)器發(fā)送網(wǎng)絡(luò)請(qǐng)求時(shí),該服務(wù)器接收到該網(wǎng)絡(luò)請(qǐng)求,調(diào)用創(chuàng)建線程,通過該創(chuàng)建線程為該網(wǎng)絡(luò)請(qǐng)求創(chuàng)建任務(wù),并將創(chuàng)建的任務(wù)添加至任務(wù)隊(duì)列中,等待執(zhí)行線程來提取任務(wù)并執(zhí)行任務(wù)。

其中,針對(duì)不同類型的網(wǎng)絡(luò)請(qǐng)求,創(chuàng)建的任務(wù)類型也不同。例如,該網(wǎng)絡(luò)請(qǐng)求為下載文件的請(qǐng)求,則創(chuàng)建的任務(wù)為下載任務(wù),該網(wǎng)絡(luò)請(qǐng)求為播放視頻的請(qǐng)求,則創(chuàng)建的任務(wù)為播放視頻任務(wù),本發(fā)明實(shí)施例對(duì)該網(wǎng)絡(luò)請(qǐng)求和該任務(wù)的類型不做限定。

進(jìn)一步地,該服務(wù)器可以配置一個(gè)任務(wù)隊(duì)列,在該任務(wù)隊(duì)列中存儲(chǔ)多個(gè)任務(wù),該多個(gè)任務(wù)可以按照優(yōu)先級(jí)從高到低的順序排列,以便執(zhí)行線程可以優(yōu)先執(zhí)行優(yōu)先級(jí)較高的任務(wù),或者該多個(gè)任務(wù)也可以按照創(chuàng)建時(shí)間從早到晚的順序排列,以便執(zhí)行線程可以優(yōu)先執(zhí)行創(chuàng)建時(shí)間較早的任務(wù),本發(fā)明實(shí)施例對(duì)任務(wù)排列方式不做限定。

或者,該服務(wù)器也可以配置多個(gè)任務(wù)隊(duì)列,每個(gè)任務(wù)隊(duì)列中的任務(wù)類型不同,每當(dāng)通過創(chuàng)建線程創(chuàng)建一個(gè)任務(wù)時(shí),將該任務(wù)添加到與該任務(wù)的類型匹配的任務(wù)隊(duì)列中。例如,下載任務(wù)隊(duì)列用于存儲(chǔ)下載任務(wù),播放視頻任務(wù)隊(duì)列用于存儲(chǔ)播放視頻任務(wù)。每個(gè)任務(wù)隊(duì)列中的多個(gè)任務(wù)也可以按照優(yōu)先級(jí)從高到低的順序排列,或者按照創(chuàng)建時(shí)間從早到晚的順序排列。

實(shí)際應(yīng)用過程中,該服務(wù)器在配置創(chuàng)建線程池或者執(zhí)行線程池時(shí),可以先配置每個(gè)線程池的唯一標(biāo)識(shí)、初始線程個(gè)數(shù)、最大線程個(gè)數(shù)等參數(shù),根據(jù)配置的參數(shù)生成線程池。在配置任務(wù)隊(duì)列時(shí),先配置任務(wù)隊(duì)列的最大任務(wù)個(gè)數(shù)、任務(wù)隊(duì)列的個(gè)數(shù)等參數(shù),根據(jù)配置的參數(shù)生成任務(wù)隊(duì)列。

該服務(wù)器可以利用AsyncThreadPool(異步線程池)標(biāo)注網(wǎng)絡(luò)請(qǐng)求,以使網(wǎng)絡(luò)請(qǐng)求的id與線程池的唯一標(biāo)識(shí)相互對(duì)應(yīng),從而保證該網(wǎng)絡(luò)請(qǐng)求由對(duì)應(yīng)的線程池進(jìn)行處理。

202、調(diào)用該執(zhí)行線程池中處于空閑狀態(tài)的任一執(zhí)行線程。

203、通過調(diào)用的執(zhí)行線程,從該任務(wù)隊(duì)列中提取該任務(wù),并執(zhí)行該任務(wù)。

本發(fā)明實(shí)施例中,該服務(wù)器可以調(diào)用該執(zhí)行線程池中任一執(zhí)行線程,通過該執(zhí)行線程,從該任務(wù)隊(duì)列中提取該任務(wù),并執(zhí)行該任務(wù)。

而實(shí)際應(yīng)用中,該執(zhí)行線程池中有些執(zhí)行線程正在執(zhí)行其他任務(wù),即處于繁忙狀態(tài),此時(shí)不能執(zhí)行該任務(wù)。而處于空閑狀態(tài)的執(zhí)行線程可以等待該服務(wù)器的調(diào)用,該服務(wù)器即可調(diào)用處于空閑狀態(tài)的任一執(zhí)行線程來執(zhí)行該任務(wù)。

進(jìn)一步地,該服務(wù)器也可以配置多個(gè)執(zhí)行線程池,每個(gè)執(zhí)行線程池的任務(wù)類型不同??蛇x地,該服務(wù)器配置有多個(gè)執(zhí)行線程池和多個(gè)任務(wù)隊(duì)列,每個(gè)執(zhí)行線程池分別與一個(gè)任務(wù)隊(duì)列匹配,那么,當(dāng)要執(zhí)行任務(wù)時(shí),該服務(wù)器從與該任務(wù)的類型匹配的執(zhí)行線程池中調(diào)用任一執(zhí)行線程,通過該執(zhí)行線程從該任務(wù)所在的任務(wù)隊(duì)列中提取該任務(wù),并執(zhí)行該任務(wù)。

需要說明的一點(diǎn)是,本發(fā)明實(shí)施例僅是以執(zhí)行該任務(wù)為例進(jìn)行說明,實(shí)際上,任務(wù)隊(duì)列中會(huì)包括多個(gè)任務(wù),執(zhí)行線程通常會(huì)依次從該任務(wù)隊(duì)列中提取任務(wù)并執(zhí)行任務(wù)。例如,該任務(wù)隊(duì)列中的多個(gè)任務(wù)按照優(yōu)先級(jí)從高到低的順序排列,該服務(wù)器每次通過調(diào)用的執(zhí)行線程,從該任務(wù)隊(duì)列中提取優(yōu)先級(jí)最高的任務(wù),并執(zhí)行該優(yōu)先級(jí)最高的任務(wù)。執(zhí)行完成之后,即可調(diào)用該執(zhí)行線程繼續(xù)從該任務(wù)隊(duì)列中提取當(dāng)前優(yōu)先級(jí)最高的任務(wù),繼續(xù)執(zhí)行提取的任務(wù)。

進(jìn)一步地,該服務(wù)器可以調(diào)用任一處于空閑狀態(tài)的執(zhí)行線程,從與該執(zhí)行線程匹配的任務(wù)隊(duì)列中提取一個(gè)任務(wù),通過該執(zhí)行線程執(zhí)行該任務(wù)。

204、當(dāng)該任務(wù)執(zhí)行完成時(shí),通過該執(zhí)行線程向該客戶端發(fā)送該任務(wù)的執(zhí)行結(jié)果。

通過該執(zhí)行線程執(zhí)行完該任務(wù)時(shí),可以獲取該任務(wù)的執(zhí)行結(jié)果,向該客戶端發(fā)送該執(zhí)行結(jié)果。例如,當(dāng)該任務(wù)為下載文件任務(wù)時(shí),向該客戶端發(fā)送文件。

可選地,發(fā)送該執(zhí)行結(jié)果時(shí)可以發(fā)送HTTP響應(yīng)消息或者發(fā)送與該網(wǎng)絡(luò)請(qǐng)求協(xié)議類型相同的響應(yīng)消息,本發(fā)明實(shí)施例對(duì)發(fā)送執(zhí)行結(jié)果的方式不做限定。

需要說明的是,本發(fā)明實(shí)施例的操作流程可以如圖3所示,參見圖3,該操作流程包括以下4個(gè)步驟:

1、客戶端發(fā)送網(wǎng)絡(luò)請(qǐng)求,由該服務(wù)器的創(chuàng)建線程接收該網(wǎng)絡(luò)請(qǐng)求。

2、創(chuàng)建線程為該網(wǎng)絡(luò)請(qǐng)求創(chuàng)建任務(wù),添加至任務(wù)隊(duì)列中。

3、執(zhí)行線程從任務(wù)隊(duì)列中提取任務(wù),并執(zhí)行該任務(wù)。

4、執(zhí)行線程得到執(zhí)行結(jié)果時(shí),發(fā)送給該客戶端。

執(zhí)行線程與創(chuàng)建線程形成了一種異步機(jī)制,在執(zhí)行線程執(zhí)行任務(wù)的過程中,創(chuàng)建線程依然會(huì)接收到其他的網(wǎng)絡(luò)請(qǐng)求,并為接收到的網(wǎng)絡(luò)請(qǐng)求創(chuàng)建任務(wù),該創(chuàng)建過程與該執(zhí)行過程互不影響。即使該創(chuàng)建線程由于接收到了過多的網(wǎng)絡(luò)請(qǐng)求而造成阻塞時(shí),也不會(huì)影響到執(zhí)行任務(wù)的過程。

本發(fā)明實(shí)施例提供的方法,通過分配配置創(chuàng)建線程池和執(zhí)行線程池,提供了一種異步處理機(jī)制,由創(chuàng)建線程池中的創(chuàng)建線程為網(wǎng)絡(luò)請(qǐng)求創(chuàng)建任務(wù),由執(zhí)行線程池中的執(zhí)行線程執(zhí)行任務(wù),將創(chuàng)建過程和執(zhí)行過程在不同的線程池中進(jìn)行處理,即使在接收到大量的網(wǎng)絡(luò)請(qǐng)求時(shí)也可以有序地進(jìn)行處理,不易造成阻塞,而且即使造成阻塞,也不會(huì)影響執(zhí)行線程執(zhí)行任務(wù),提升了服務(wù)器的處理性能,有助于阻塞現(xiàn)象的快速解決。

而且,該服務(wù)器可以包括多個(gè)執(zhí)行線程池,分別用于執(zhí)行不同類型的任務(wù)。在實(shí)際應(yīng)用中,可以根據(jù)開發(fā)人員的業(yè)務(wù)需求配置多個(gè)執(zhí)行線程池,提高了靈活性,解決了線程耦合的問題。各個(gè)線程池的職責(zé)單一,流程清晰簡(jiǎn)單,設(shè)計(jì)簡(jiǎn)潔、靈活,可以很容易的維護(hù)和開發(fā),簡(jiǎn)單易用、容易理解、擴(kuò)展性好,從而降低了學(xué)習(xí)成本,提高了開發(fā)效率。

圖4是本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)請(qǐng)求異步處理裝置的結(jié)構(gòu)示意圖。參見圖4,該裝置應(yīng)用于服務(wù)器中,該服務(wù)器配置有創(chuàng)建線程池和執(zhí)行線程池,該創(chuàng)建線程池中包括用于創(chuàng)建任務(wù)的創(chuàng)建線程,該執(zhí)行線程池中包括用于執(zhí)行任務(wù)的執(zhí)行線程;該裝置包括:

接收模塊401,用于通過該創(chuàng)建線程,接收客戶端發(fā)送的網(wǎng)絡(luò)請(qǐng)求;

創(chuàng)建任務(wù)模塊402,用于為該網(wǎng)絡(luò)請(qǐng)求創(chuàng)建任務(wù),將該任務(wù)添加至任務(wù)隊(duì)列中;

提取任務(wù)模塊403,用于通過該執(zhí)行線程,從該任務(wù)隊(duì)列中提取該任務(wù);

任務(wù)執(zhí)行模塊404,用于執(zhí)行該任務(wù);

發(fā)送模塊405,用于當(dāng)該任務(wù)執(zhí)行完成時(shí),通過該執(zhí)行線程向該客戶端發(fā)送該任務(wù)的執(zhí)行結(jié)果。

本發(fā)明實(shí)施例提供的裝置,通過分配配置創(chuàng)建線程池和執(zhí)行線程池,提供了一種異步處理機(jī)制,由創(chuàng)建線程池中的創(chuàng)建線程為網(wǎng)絡(luò)請(qǐng)求創(chuàng)建任務(wù),由執(zhí)行線程池中的執(zhí)行線程執(zhí)行任務(wù),將創(chuàng)建過程和執(zhí)行過程在不同的線程池中進(jìn)行處理,即使在接收到大量的網(wǎng)絡(luò)請(qǐng)求時(shí)也可以有序地進(jìn)行處理,不易造成阻塞,而且即使造成阻塞,也不會(huì)影響執(zhí)行線程執(zhí)行任務(wù),提升了服務(wù)器的處理性能,有助于阻塞現(xiàn)象的快速解決。

可選地,該執(zhí)行線程池中包括多個(gè)執(zhí)行線程,該裝置包括:

調(diào)用模塊,用于調(diào)用該執(zhí)行線程池中處于空閑狀態(tài)的任一執(zhí)行線程;

該提取任務(wù)模塊403,用于通過調(diào)用的執(zhí)行線程,從該任務(wù)隊(duì)列中提取該任務(wù)。

可選地,該任務(wù)隊(duì)列中的多個(gè)任務(wù)按照優(yōu)先級(jí)從高到低的順序排列,該裝置還包括:

調(diào)用模塊,用于調(diào)用該執(zhí)行線程池中處于空閑狀態(tài)的任一執(zhí)行線程;

該提取任務(wù)模塊403,用于通過調(diào)用的執(zhí)行線程,從該任務(wù)隊(duì)列中提取優(yōu)先級(jí)最高的任務(wù)。

可選地,該服務(wù)器配置有多個(gè)任務(wù)隊(duì)列,每個(gè)任務(wù)隊(duì)列的任務(wù)類型不同;

該創(chuàng)建任務(wù)模塊402,用于將該任務(wù)添加至與該任務(wù)的類型匹配的任務(wù)隊(duì)列中。

可選地,該服務(wù)器配置有多個(gè)執(zhí)行線程池,每個(gè)執(zhí)行線程池匹配的任務(wù)類型不同,該提取任務(wù)模塊403用于從與該任務(wù)的類型匹配的執(zhí)行線程池中調(diào)用任一執(zhí)行線程,通過調(diào)用的執(zhí)行線程,從該任務(wù)隊(duì)列中提取該任務(wù)。

上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本發(fā)明的可選實(shí)施例,在此不再一一贅述。

需要說明的是:上述實(shí)施例提供的網(wǎng)絡(luò)請(qǐng)求異步處理裝置在處理網(wǎng)絡(luò)請(qǐng)求時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能創(chuàng)建由不同的功能模塊完成,即將服務(wù)器的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的網(wǎng)絡(luò)請(qǐng)求異步處理裝置與網(wǎng)絡(luò)請(qǐng)求異步處理方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過程詳見方法實(shí)施例,這里不再贅述。

圖5是本發(fā)明實(shí)施例提供的一種服務(wù)器的結(jié)構(gòu)示意圖,該服務(wù)器500可因配置或性能不同而產(chǎn)生比較大的差異,可以包括一個(gè)或一個(gè)以上中央處理器(central processing units,CPU)522(例如,一個(gè)或一個(gè)以上處理器)和存儲(chǔ)器532,一個(gè)或一個(gè)以上存儲(chǔ)應(yīng)用程序542或數(shù)據(jù)544的存儲(chǔ)介質(zhì)530(例如一個(gè)或一個(gè)以上海量存儲(chǔ)設(shè)備)。其中,存儲(chǔ)器532和存儲(chǔ)介質(zhì)530可以是短暫存儲(chǔ)或持久存儲(chǔ)。存儲(chǔ)在存儲(chǔ)介質(zhì)530的程序可以包括一個(gè)或一個(gè)以上模塊(圖示沒標(biāo)出),每個(gè)模塊可以包括對(duì)服務(wù)器中的一系列指令操作。更進(jìn)一步地,中央處理器522可以設(shè)置為與存儲(chǔ)介質(zhì)530通信,在服務(wù)器500上執(zhí)行存儲(chǔ)介質(zhì)530中的一系列指令操作。

服務(wù)器500還可以包括一個(gè)或一個(gè)以上電源526,一個(gè)或一個(gè)以上有線或無線網(wǎng)絡(luò)接口550,一個(gè)或一個(gè)以上輸入輸出接口558,一個(gè)或一個(gè)以上鍵盤556,和/或,一個(gè)或一個(gè)以上操作系統(tǒng)541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,F(xiàn)reeBSDTM等等。

該服務(wù)器500可以用于執(zhí)行上述實(shí)施例提供的網(wǎng)絡(luò)請(qǐng)求異步處理方法中服務(wù)器所執(zhí)行的步驟。

本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。

以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1