本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種請求處理裝置、方法及終端。
背景技術(shù):
目前,服務(wù)端在接收到請求后,只在請求處理完成后向客戶端發(fā)送請求處理結(jié)果信息,例如在用Web界面向服務(wù)端發(fā)送一個操作請求或信息獲取請求,然而服務(wù)端接收到這個請求后,需要花費一些時間處理,才能返回具體信息。這樣的請求處理過程會產(chǎn)生一些問題,即用戶需要等待服務(wù)器處理完成后,才能接收到這個請求處理結(jié)果信息,并且用戶看不到該請求的具體處理過程,如果請求失敗,用戶還要去執(zhí)行一些額外的操作來查看具體的錯誤信息等問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種請求處理裝置、方法及終端,可以將該請求處理狀態(tài)和進度展示給用戶,使用戶及時了解請求處理進程,提高用戶體驗。
為解決上述技術(shù)問題,本發(fā)明提供一種請求處理裝置,包括:
請求接收單元,用于接收客戶端發(fā)送的請求;
請求線程處理單元,用于為接收到的請求分配對應(yīng)的請求處理線程,并調(diào)用線程跟蹤函數(shù)檢測所述請求處理線程的處理進度;
請求處理單元,用于執(zhí)行所述請求處理線程;
進度反饋單元,用于將所述請求處理線程的處理進度反饋給所述客戶端。
可選的,所述請求線程處理單元,包括:
請求線程異步處理模塊,用于為接收到的每個請求分配對應(yīng)的請求處理線程,并調(diào)用線程跟蹤函數(shù)檢測所述請求處理線程的處理進度;或,
請求線程同步處理模塊,用于按照請求接收順序依次調(diào)用請求處理線程,并調(diào)用線程跟蹤函數(shù)檢測所述請求處理線程的處理進度。
可選的,所述進度反饋單元,包括:
進度反饋模塊,用于將所述請求處理線程的處理進度以進度條的形式反饋給所述客戶端。
可選的,該請求處理裝置還包括:
請求數(shù)據(jù)記錄單元,用于記錄所述請求的業(yè)務(wù)信息;其中,所述業(yè)務(wù)信息包括請求描述,請求處理進度,錯誤信息。
可選的,該請求處理裝置還包括:
請求取消單元,用于接收所述客戶端發(fā)送的取消指令,將對應(yīng)請求處理狀態(tài)標(biāo)記為取消狀態(tài)。
本發(fā)明還提供一種請求處理方法,包括:
接收客戶端發(fā)送的請求,并為接收到的請求分配對應(yīng)的請求處理線程;
執(zhí)行所述請求處理線程;
調(diào)用線程跟蹤函數(shù)檢測所述請求處理線程的處理進度;
將所述請求處理線程的處理進度反饋給所述客戶端。
可選的,所述為接收到的請求分配對應(yīng)的請求處理線程,包括:
為接收到的每個請求分配對應(yīng)的請求處理線程;或,
按照請求接收順序依次調(diào)用請求處理線程。
可選的,該請求處理方法還包括:
記錄所述請求的業(yè)務(wù)信息;其中,所述業(yè)務(wù)信息包括請求描述,請求處理進度,錯誤信息。
可選的,接收客戶端發(fā)送的請求之后且為接收到的請求分配對應(yīng)的請求處理線程之前,還包括:
接收所述客戶端發(fā)送的取消指令,將對應(yīng)請求處理狀態(tài)標(biāo)記為取消狀態(tài)。
本發(fā)明還提供一種終端,包括:
接收器,用于接收客戶端發(fā)送的請求;
處理器,用于為接收到的請求分配對應(yīng)的請求處理線程;執(zhí)行所述請求處理線程;調(diào)用線程跟蹤函數(shù)檢測所述請求處理線程的處理進度;
發(fā)送器,用于將所述請求處理線程的處理進度反饋給所述客戶端。
本發(fā)明所提供的一種請求處理裝置,包括:請求接收單元,用于接收客戶端發(fā)送的請求;請求線程處理單元,用于為接收到的請求分配對應(yīng)的請求處理線程,并調(diào)用線程跟蹤函數(shù)檢測所述請求處理線程的處理進度;請求處理單元,用于執(zhí)行所述請求處理線程;進度反饋單元,用于將所述請求處理線程的處理進度反饋給所述客戶端;
可見,該請求處理裝置利用請求線程處理單元監(jiān)控請求處理單元中請求處理線程的處理進度即請求處理狀態(tài),并通過進度反饋單元將處理進度即處理狀態(tài)反饋給用戶;可以變現(xiàn)有技術(shù)中請求處理過程沒有反饋的缺點,可以將該請求處理狀態(tài)即進度展示給用戶,使用戶及時了解請求處理進程,提高用戶體驗;本發(fā)明還提供了一種請求處理方法及終端,具有上述有益效果,在此不再贅述。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例所提供的一種請求處理裝置的結(jié)構(gòu)框圖;
圖2為本發(fā)明實施例所提供的另一請求處理裝置的結(jié)構(gòu)框圖;
圖3為本發(fā)明實施例所提供的又一請求處理裝置的結(jié)構(gòu)框圖;
圖4為本發(fā)明實施例所提供的又一請求處理裝置的層次結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例所提供的一種請求處理方法的流程圖;
圖6為本發(fā)明實施例所提供的一種終端的結(jié)構(gòu)框圖。
具體實施方式
本發(fā)明的核心是提供一種請求處理裝置、方法及終端,可以將該請求處理狀態(tài)和進度展示給用戶,使用戶及時了解請求處理進程,提高用戶體驗。
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本實施例提供的請求處理裝置可以是按照面向?qū)ο蟮拈_發(fā)方式進行構(gòu)件裝置的,由于面向?qū)ο蟮拈_發(fā)方式各個單元之間存在多態(tài)和繼承的關(guān)系,因此該裝置有很好可擴展性。具體請參考圖1,圖1為本發(fā)明實施例所提供的請求處理裝置的結(jié)構(gòu)框圖;該請求處理裝置可以包括:
請求接收單元100,用于接收客戶端發(fā)送的請求;
請求線程處理單元200,用于為接收到的請求分配對應(yīng)的請求處理線程,并調(diào)用線程跟蹤函數(shù)檢測所述請求處理線程的處理進度;
請求處理單元300,用于執(zhí)行所述請求處理線程;
進度反饋單元400,用于將所述請求處理線程的處理進度反饋給所述客戶端。
具體的,請求接收單元100是抽象出用戶請求處理的公共數(shù)據(jù)部分,例如公共的字段和方法,可以作為面向?qū)ο箝_發(fā)中的基類可作為第一層結(jié)構(gòu)也即基層結(jié)構(gòu)。
請求線程處理單元200利用面向?qū)ο蠖鄳B(tài),繼承和覆蓋特點,設(shè)置請求處理線程的分配,請求處理線程的跟蹤等功能。其中,請求處理線程的分配主要考慮請求的執(zhí)行方式,若請求是異步處理則可以為每一個請求設(shè)置一個對應(yīng)的請求處理線程;若請求是同步處理則可以設(shè)置一個請求處理線程,按照請求接收順序依次處理各個請求;請求線程處理單元200可以同時存在異步處理和同步處理兩種形式,例如根據(jù)請求的種類確定其處理方式;如操作請求采用異步處理方式,消息獲取請求采用同步處理方式。即可選的,所述請求線程處理單元200可以包括:
請求線程異步處理模塊,用于為接收到的每個請求分配對應(yīng)的請求處理線程,并調(diào)用線程跟蹤函數(shù)檢測所述請求處理線程的處理進度;或,
請求線程同步處理模塊,用于按照請求接收順序依次調(diào)用請求處理線程,并調(diào)用線程跟蹤函數(shù)檢測所述請求處理線程的處理進度。
進一步,為了提高客戶端請求的處理速度,提高用戶體驗,這里的請求處理可以采用異步處理方式進行。即優(yōu)選的,所述請求線程處理單元200具體包括請求線程異步處理模塊,用于為接收到的每個請求分配對應(yīng)的請求處理線程,并調(diào)用線程跟蹤函數(shù)檢測所述請求處理線程的處理進度。
具體的,請求線程異步處理模塊加入多線程功能和請求處理過程跟蹤功能,請求線程同步處理模塊加入單線程功能和請求處理過程跟蹤功能,請求線程處理單元200通過繼承特點,每一個具體的請求處理類都可以獲得這兩個功能,只需對應(yīng)的線程執(zhí)行程序和線程進度檢測程序即可,例如要調(diào)用Run Work()和Task Poll To Complection(),就可以實現(xiàn)這兩個功能。請求異步處理類通過實現(xiàn)第三層中的Run()方法,來實現(xiàn)自身所要做的對應(yīng)處理。即請求線程處理單元200是請求處理單元300的父類。例如請求線程異步處理模塊引入多線程操作,用一個線程處理每個具體的客戶端的請求,并且可以檢測請求處理的進度和取消請求處理過程等。
進度反饋單元400用于及時將請求線程處理單元200的得到的請求處理線程的處理進度結(jié)果向客戶端進行反饋,使用戶能夠及時獲取處理進度。這里的處理進度可以包括進程處理程度(例如可以通過進度條,餅狀圖等形式進行表示),還可以包括處理進程信息即請求狀態(tài)信息(例如請求已成功發(fā)送至數(shù)據(jù)庫端,數(shù)據(jù)庫端已成功進行數(shù)據(jù)查找,數(shù)據(jù)庫端正在進行數(shù)據(jù)發(fā)送等)等。其輸出形式可以是通過顯示屏記性顯示,也可以是通過語音等形式進行發(fā)送。
具體的,請求接收單元100,請求線程處理單元200,請求處理單元300可以設(shè)計為3層數(shù)據(jù)結(jié)構(gòu),請求接收單元100為基層即第一層,請求線程處理單元200為第二層,請求處理單元300為第三層。這3層是依次被繼承的關(guān)系,組成請求處理鏈。這樣的數(shù)據(jù)結(jié)構(gòu)適合后續(xù)功能的擴展;例如在請求線程處理單元200中增加記錄處理信息的功能,則請求處理單元300即可以繼承該功能,在請求處理過程中,調(diào)用對應(yīng)的處理信息記錄程序?qū)崿F(xiàn)記錄處理信息的功能。
基于上述技術(shù)方案,本發(fā)明實施例提的請求處理裝置,可以解決客戶端發(fā)出請求后,等待服務(wù)端返回結(jié)果,以及請求處理過程和進度顯示的等問題。本實施例可以采用三層的繼承結(jié)構(gòu),利用多態(tài)的方式引入多線程,這樣客戶端的每一個請求都會用一個異步線程來進行處理,這樣用戶發(fā)出請求后就不會處于等待狀態(tài),且可以看到請求的處理過程。
基于上述實施例,請參考圖2,該請求處理裝置還可以包括:
請求數(shù)據(jù)記錄單元500,用于記錄所述請求的業(yè)務(wù)信息;其中,所述業(yè)務(wù)信息包括請求描述,請求處理進度,錯誤信息。
具體的,每一個請求都會產(chǎn)生一個業(yè)務(wù)即一個業(yè)務(wù)信息,用于記錄請求處理過程中的信息,進一步為了方便后續(xù)用戶對業(yè)務(wù)信息的查看可以將該業(yè)務(wù)信息保存到數(shù)據(jù)庫中,通過修改業(yè)務(wù)的狀態(tài)字段,取消請求處理業(yè)務(wù)的繼續(xù)執(zhí)行,可以有效的解決用戶請求所出現(xiàn)的問題。也便于技術(shù)人員根據(jù)請求數(shù)據(jù)記錄單元500中存儲的業(yè)務(wù)信息優(yōu)化請求處理過程,提高請求處理合理性和可靠性。減少請求處理的錯誤率。即請求處理過程的一個信息類,包括名稱,具體描述,進度,錯誤信息等,每一條業(yè)務(wù)信息都會放置在數(shù)據(jù)庫(Request Processing DB)中的業(yè)務(wù)列表中進行記錄。
基于上述任意實施例,請參考圖3(僅其中一個例子,本實施例中的請求取消單元600可以與上述任意實施例中的單元進行組合),該請求處理裝置還可以包括:
請求取消單元600,用于接收所述客戶端發(fā)送的取消指令,將對應(yīng)請求處理狀態(tài)標(biāo)記為取消狀態(tài)。
具體的,用于標(biāo)記請求處理過程的取消狀態(tài);即正在取消,已取消等,可以根據(jù)客戶端即用戶發(fā)用的取消指令,及時將對應(yīng)請求處理狀態(tài)標(biāo)記為取消狀態(tài)。以便節(jié)省線程,即節(jié)省計算空間。提高其他請求的處理效率。
本實施例中該裝置請求接收單元100,請求取消單元600,請求線程處理單元200,請求處理單元300可以設(shè)計為4層數(shù)據(jù)結(jié)構(gòu),請求接收單元100為基層即第一層,請求取消單元600為第二層,請求線程處理單元200為第三層,請求處理單元300為第四層。
即該請求處理裝置簡稱裝置利用面向?qū)ο箝_發(fā)的特點,以及結(jié)合客戶端發(fā)出請求,服務(wù)端處理用戶請求的具體過程,將該請求處理狀態(tài)和進度展示給用戶,并且讓用戶可以取消請求處理。本實施例中的裝置結(jié)構(gòu)設(shè)計是使用面向?qū)ο箝_發(fā)中多態(tài)和繼承的特點,將從服務(wù)端處理用戶請求設(shè)計為一個四層結(jié)構(gòu),請參考圖4,圖4中的請求接收單元100即RequestProcessingBase,請求取消單元600即CancellingProcess,請求線程處理單元200即AsyncProcess,請求處理單元300即XXProcess(即圖4中X1RequestProcess)到XNRequestProcess。RequestProcessingBase中包含有#ProcessTask基類,CancellingProcess包含有#Cancelling:Boolran和#Cancelled:Boolran類,AsyncProcess中包含數(shù)據(jù)庫-TaskDB,+RunWork():void,#Run():abstract void,+Task PollToComplection():void類,XXProcess中包含#Run():override void。
基于上述技術(shù)方案,本發(fā)明實施例提的請求處理裝置,可以解決客戶端發(fā)出請求后,等待服務(wù)端返回結(jié)果,以及請求處理過程和進度顯示的等問題。本實施例可以采用四層的繼承結(jié)構(gòu),采用多態(tài)的方式引入多線程,用戶的每一個請求都會用一個異步線程來進行處理,這樣用戶發(fā)出請求后就不會處于等待狀態(tài),且可以看到請求的處理過程。此外,每一個用戶請求都會產(chǎn)生一個業(yè)務(wù),用于記錄請求處理過程中的信息,并且將該業(yè)務(wù)信息保存到數(shù)據(jù)庫中,通過修改業(yè)務(wù)的狀態(tài)字段,取消請求處理業(yè)務(wù)的繼續(xù)執(zhí)行,可以有效的解決用戶請求所出現(xiàn)的問題。
下面對本發(fā)明實施例提供的請求處理方法及終端進行介紹,下文描述的請求處理方法及終端與上文描述的請求處理裝置可相互對應(yīng)參照。
請參考圖5,圖5為本發(fā)明實施例所提供的一種請求處理方法的流程圖;該方法可以包括:
S100、接收客戶端發(fā)送的請求,并為接收到的請求分配對應(yīng)的請求處理線程;
S110、執(zhí)行所述請求處理線程;
S120、調(diào)用線程跟蹤函數(shù)檢測所述請求處理線程的處理進度;
S130、將所述請求處理線程的處理進度反饋給所述客戶端。
基于上述實施例,所述為接收到的請求分配對應(yīng)的請求處理線程可以包括:
為接收到的每個請求分配對應(yīng)的請求處理線程;或,
按照請求接收順序依次調(diào)用請求處理線程。
基于上述任意實施例,該方法還可以包括:
記錄所述請求的業(yè)務(wù)信息;其中,所述業(yè)務(wù)信息包括請求描述,請求處理進度,錯誤信息。
基于上述任意實施例,該方法在接收客戶端發(fā)送的請求之后且為接收到的請求分配對應(yīng)的請求處理線程之前,還可以包括:
接收所述客戶端發(fā)送的取消指令,將對應(yīng)請求處理狀態(tài)標(biāo)記為取消狀態(tài)。
請參考圖6,本發(fā)明還提供一種終端,包括:
接收器700,用于接收客戶端發(fā)送的請求;
處理器800,用于為接收到的請求分配對應(yīng)的請求處理線程;執(zhí)行所述請求處理線程;調(diào)用線程跟蹤函數(shù)檢測所述請求處理線程的處理進度;
發(fā)送器900,用于將所述請求處理線程的處理進度反饋給所述客戶端。
說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
以上對本發(fā)明所提供的一種請求處理裝置、方法及終端進行了詳細介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。