本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種異步服務(wù)處理方法及服務(wù)器。
背景技術(shù):
目前,有些網(wǎng)絡(luò)(web)服務(wù)系統(tǒng),為了保障高可靠性,經(jīng)常會采用多主機(jī)冗余的系統(tǒng)提供服務(wù),其主要架構(gòu)如圖1所示,包括一臺轉(zhuǎn)發(fā)服務(wù)器(為了防止單點(diǎn)故障,通常會有兩臺或者多臺主備轉(zhuǎn)發(fā)服務(wù)器,如果當(dāng)前的主轉(zhuǎn)發(fā)服務(wù)器故障則自動切換到備轉(zhuǎn)發(fā)服務(wù)器,但通常同一時(shí)間只有一臺轉(zhuǎn)發(fā)服務(wù)器投入使用)、多臺相同的應(yīng)用服務(wù)器(每臺應(yīng)用服務(wù)器提供完全相同的服務(wù)并且同時(shí)運(yùn)行)和一個(gè)數(shù)據(jù)庫。其工作原理如下:用戶向轉(zhuǎn)發(fā)服務(wù)器發(fā)出服務(wù)請求,轉(zhuǎn)發(fā)服務(wù)器將該服務(wù)請求隨機(jī)轉(zhuǎn)發(fā)到任意一臺應(yīng)用服務(wù)器,應(yīng)用服務(wù)器處理該服務(wù)請求的過程中會讀寫數(shù)據(jù)庫,處理完成后再將結(jié)果數(shù)據(jù)返回給用戶。這種多主機(jī)服務(wù)系統(tǒng)可以提高系統(tǒng)的穩(wěn)定性,任何一臺服務(wù)器故障不會影響該系統(tǒng)正常提供服務(wù),同時(shí)可以同時(shí)處理更多的用戶服務(wù)請求。
如果圖1所示的多主機(jī)服務(wù)系統(tǒng)中有調(diào)用第三方服務(wù)器的異步請求服務(wù),則其主要架構(gòu)如圖2所示,在圖1所示的多主機(jī)服務(wù)系統(tǒng)的基礎(chǔ)上增加了第三方服務(wù)器。若異步請求結(jié)果采用輪詢模式,則其工作原理如下:1、用戶通過客戶端向轉(zhuǎn)發(fā)服務(wù)器發(fā)出服務(wù)請求;2、轉(zhuǎn)發(fā)服務(wù)器將該服務(wù)請求隨機(jī)轉(zhuǎn)發(fā)到任意一臺應(yīng)用服務(wù)器;3應(yīng)用服務(wù)器將異步服務(wù)請求發(fā)送至第三方服務(wù)器;4、應(yīng)用服務(wù)器接收第三方服務(wù)器返回的異步服務(wù)請求成功的響應(yīng),該響應(yīng)中包括異步服務(wù)請求的標(biāo)識;5、應(yīng)用服務(wù)器根據(jù)第三方服務(wù)器返回的該異步服務(wù)請求的標(biāo)識將輪詢請求發(fā)送至第三方服務(wù)器,該輪詢請求中包括異步服務(wù)請求的標(biāo)識;6、應(yīng)用服務(wù)器接 收第三方服務(wù)器返回的與異步服務(wù)請求的標(biāo)識對應(yīng)的請求結(jié)果數(shù)據(jù);7、應(yīng)用服務(wù)器根據(jù)獲取到的請求結(jié)果數(shù)據(jù)更新數(shù)據(jù)庫;8、用戶想查詢請求結(jié)果數(shù)據(jù)時(shí),向轉(zhuǎn)發(fā)服務(wù)器發(fā)出查詢請求;9、轉(zhuǎn)發(fā)服務(wù)器將該查詢請求隨機(jī)轉(zhuǎn)發(fā)到任意一臺應(yīng)用服務(wù)器;10、應(yīng)用服務(wù)器在數(shù)據(jù)庫中查詢請求結(jié)果數(shù)據(jù),并返回給用戶。
在應(yīng)用服務(wù)器輪詢第三方服務(wù)器的過程中,若應(yīng)用服務(wù)器因故障或升級發(fā)布停機(jī)或網(wǎng)絡(luò)異常導(dǎo)致應(yīng)用服務(wù)器無法連接上第三方服務(wù)器,則輪詢停止,數(shù)據(jù)庫不更新,導(dǎo)致第三方服務(wù)器中的請求結(jié)果數(shù)據(jù)與數(shù)據(jù)庫中的數(shù)據(jù)不一致,用戶無法獲知準(zhǔn)確的請求結(jié)果數(shù)據(jù)。
為保證第三方服務(wù)器中的請求結(jié)果數(shù)據(jù)與數(shù)據(jù)庫中的數(shù)據(jù)一致,確保用戶獲知準(zhǔn)確的請求結(jié)果數(shù)據(jù),現(xiàn)有技術(shù)中通過運(yùn)維人員手動查詢數(shù)據(jù)庫中的數(shù)據(jù)與第三方服務(wù)器中的數(shù)據(jù)是否一致,來確定未完成輪詢操作的數(shù)據(jù),并手動訂正數(shù)據(jù)庫中未完成輪詢操作的數(shù)據(jù)來恢復(fù)數(shù)據(jù),但由于為事后處理,無法保證用戶及時(shí)獲知準(zhǔn)確的請求結(jié)果數(shù)據(jù),且人力成本較高,處理效率較低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種異步服務(wù)處理方法及服務(wù)器,無需人力參與,即可實(shí)現(xiàn)在故障恢復(fù)后自動完成未完成的輪詢操作,保證服務(wù)提供方中的請求結(jié)果數(shù)據(jù)與服務(wù)請求方記錄的數(shù)據(jù)一致,確保用戶及時(shí)獲知準(zhǔn)確的請求結(jié)果數(shù)據(jù),降低了人力成本,提高了處理效率。
為達(dá)到上述目的,本發(fā)明采用如下技術(shù)方案:
一方面,本發(fā)明提供一種異步服務(wù)處理方法,包括:根據(jù)記錄的各服務(wù)請求的處理詳情信息,獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求作為目標(biāo)服務(wù)請求;針對所述目標(biāo)服務(wù)請求,重新向所述服務(wù)提供方發(fā)送輪詢請求,以請求獲取所述目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù);接收并記錄所述服務(wù)提供方返回的所述目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù)。
另一方面,本發(fā)明提供一種異步服務(wù)處理方法,包括:針對服務(wù)請求,執(zhí)行異步服務(wù)處理流程;在執(zhí)行所述異步服務(wù)處理流程的過程中, 記錄所述服務(wù)請求的處理詳情信息。
另一方面,本發(fā)明提供一種服務(wù)器,包括:獲取模塊,用于根據(jù)記錄的各服務(wù)請求的處理詳情信息,獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求作為目標(biāo)服務(wù)請求;輪詢模塊,用于針對所述目標(biāo)服務(wù)請求,重新向所述服務(wù)提供方發(fā)送輪詢請求,以請求獲取所述目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù);接收模塊,用于接收并記錄所述服務(wù)提供方返回的所述目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù)。
另一方面,本發(fā)明提供一種服務(wù)器,包括:執(zhí)行模塊,用于針對服務(wù)請求,執(zhí)行異步服務(wù)處理流程;第二記錄模塊,用于在所述執(zhí)行模塊執(zhí)行所述異步服務(wù)處理流程的過程中,記錄所述服務(wù)請求的處理詳情信息。
本發(fā)明提供的異步服務(wù)處理方法及服務(wù)器,根據(jù)記錄的各服務(wù)請求的處理詳情信息,獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求作為目標(biāo)服務(wù)請求,針對所述目標(biāo)服務(wù)請求,重新向所述服務(wù)提供方發(fā)送輪詢請求,以請求獲取所述目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù),接收并記錄所述服務(wù)提供方返回的所述目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù),保證了服務(wù)提供方中的請求結(jié)果數(shù)據(jù)與服務(wù)請求方記錄的數(shù)據(jù)一致,確保用戶及時(shí)獲知準(zhǔn)確的請求結(jié)果數(shù)據(jù),由于過程中無需人力參與,降低了人力成本,提高了處理效率。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1為現(xiàn)有的多主機(jī)服務(wù)系統(tǒng)的架構(gòu)示意圖;
圖2為現(xiàn)有的多主機(jī)異步服務(wù)系統(tǒng)的架構(gòu)及工作原理示意圖;
圖3為本發(fā)明提供的異步服務(wù)處理方法一個(gè)實(shí)施例的流程示意圖;
圖4為本發(fā)明提供的異步服務(wù)處理方法又一個(gè)實(shí)施例的流程示意圖;
圖5為圖4所示實(shí)施例的異步服務(wù)處理方法一種可行實(shí)施方式的流程示意圖;
圖6為圖5所示的異步服務(wù)處理方法應(yīng)用于多主機(jī)異步服務(wù)系統(tǒng)的架構(gòu)及交互邏輯示意圖;
圖7為本發(fā)明提供的異步服務(wù)處理方法又一個(gè)實(shí)施例的流程示意圖;
圖8為本發(fā)明提供的異步服務(wù)處理方法又一個(gè)實(shí)施例的流程示意圖;
圖9為圖8所示實(shí)施例的異步服務(wù)處理方法一種可行實(shí)施方式的流程示意圖;
圖10為圖9所示的異步服務(wù)處理方法應(yīng)用于多主機(jī)異步服務(wù)系統(tǒng)的架構(gòu)及交互邏輯示意圖;
圖11為本發(fā)明提供的服務(wù)器一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
圖12為本發(fā)明提供的服務(wù)器又一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
下面結(jié)合附圖對本發(fā)明實(shí)施例的異步服務(wù)處理方法及服務(wù)器進(jìn)行詳細(xì)描述。
實(shí)施例一
圖3為本發(fā)明提供的異步服務(wù)處理方法一個(gè)實(shí)施例的流程示意圖。本發(fā)明實(shí)施例的異步服務(wù)處理方法可應(yīng)用于異步服務(wù)請求方,例如圖2所示的異步服務(wù)系統(tǒng)中的應(yīng)用服務(wù)器中,為異步服務(wù)系統(tǒng)的數(shù)據(jù)恢復(fù)流 程。如圖3所示,本發(fā)明實(shí)施例的異步服務(wù)處理方法具體可包括:
s301,根據(jù)記錄的各服務(wù)請求的處理詳情信息,獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求作為目標(biāo)服務(wù)請求。
s302,針對目標(biāo)服務(wù)請求,重新向服務(wù)提供方發(fā)送輪詢請求,以請求獲取目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù)。
s303,接收并記錄服務(wù)提供方返回的目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù)。
具體的,本發(fā)明實(shí)施例描述了異步服務(wù)請求處理的數(shù)據(jù)恢復(fù)流程。異步服務(wù)請求方根據(jù)記錄的各服務(wù)請求的處理詳情信息,獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求作為目標(biāo)服務(wù)請求,即獲取因故障未完成輪詢操作的服務(wù)請求作為目標(biāo)服務(wù)請求。針對目標(biāo)服務(wù)請求,重新執(zhí)行輪詢操作,即重新向服務(wù)提供方發(fā)送輪詢請求,以請求獲取目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù),接收并記錄服務(wù)提供方返回的目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù),以保證服務(wù)提供方的請求結(jié)果數(shù)據(jù)與服務(wù)請求方記錄的結(jié)果數(shù)據(jù)一致。其中,可以將服務(wù)提供方返回的目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù)記錄在本地?cái)?shù)據(jù)庫中,也可以記錄在外部的其他存儲介質(zhì)中,例如云盤、移動硬盤等中。
本發(fā)明實(shí)施例的異步服務(wù)處理方法,根據(jù)記錄的各服務(wù)請求的處理詳情信息,獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求作為目標(biāo)服務(wù)請求,針對目標(biāo)服務(wù)請求,重新向服務(wù)提供方發(fā)送輪詢請求,以請求獲取目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù),接收并記錄服務(wù)提供方返回的目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù),保證了服務(wù)提供方中的請求結(jié)果數(shù)據(jù)與服務(wù)請求方記錄的數(shù)據(jù)一致,確保用戶及時(shí)獲知準(zhǔn)確的請求結(jié)果數(shù)據(jù),由于過程中無需人力參與,降低了人力成本,提高了處理效率。
實(shí)施例二
圖4為本發(fā)明提供的異步服務(wù)處理方法又一個(gè)實(shí)施例的流程示意圖。本發(fā)明實(shí)施例的異步服務(wù)處理方法可應(yīng)用于異步服務(wù)請求方,例如圖2所示的異步服務(wù)系統(tǒng)中的應(yīng)用服務(wù)器中,為異步服務(wù)系統(tǒng)的數(shù)據(jù)恢復(fù)流程。如圖4所示,本發(fā)明實(shí)施例的異步服務(wù)處理方法為圖3所示實(shí)施例 的異步服務(wù)處理方法的一種可行實(shí)施方式,具體可包括:
圖3所示實(shí)施例中的步驟s301中,各服務(wù)請求的處理詳情信息具體可包括各服務(wù)請求的接收時(shí)間和執(zhí)行狀態(tài),執(zhí)行狀態(tài)具體可包括“發(fā)送異步請求成功”狀態(tài)和“輪詢結(jié)果完成”狀態(tài)。因此圖3所示實(shí)施例中的步驟s301具體可包括如下步驟s401-s402。
s401,根據(jù)各服務(wù)請求的執(zhí)行狀態(tài),獲取處于“發(fā)送異步請求成功”狀態(tài)的服務(wù)請求作為候選服務(wù)請求。
s402,計(jì)算候選服務(wù)請求的接收時(shí)間與當(dāng)前時(shí)間的差值,獲取差值大于指定時(shí)間的服務(wù)請求作為目標(biāo)服務(wù)請求。
具體的,步驟s401-s402中,通過獲取接收時(shí)間與當(dāng)前時(shí)間的差值大于指定時(shí)間,且執(zhí)行狀態(tài)為“發(fā)送異步請求成功”狀態(tài)的服務(wù)請求,以獲取因故障未完成輪詢操作的服務(wù)請求。其中,指定時(shí)間可以根據(jù)需要設(shè)定,一般會設(shè)置一個(gè)最大輪詢時(shí)長,例如30分鐘,30分鐘內(nèi)還未輪詢到結(jié)果,則認(rèn)為此次異步服務(wù)處理失敗,因此此處可設(shè)置指定時(shí)間大于最大輪詢時(shí)長,但也不能設(shè)置過大,避免數(shù)據(jù)恢復(fù)時(shí)間過長,例如設(shè)置為最大輪詢時(shí)長的2倍。
s403,針對目標(biāo)服務(wù)請求,重新向服務(wù)提供方發(fā)送輪詢請求,以請求獲取目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù)。
若輪詢請求發(fā)送成功,則執(zhí)行以下步驟s404。
s404,接收并記錄服務(wù)提供方返回的目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù)。
具體的,步驟s403-s404與圖3所示實(shí)施例中的步驟s302-s303相同,具體過程可參見圖3所示實(shí)施例中的相關(guān)描述,此處不再贅述。
進(jìn)一步的,本發(fā)明實(shí)施例的異步服務(wù)處理方法還可包括:
s405,當(dāng)服務(wù)提供方成功返回目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù)時(shí),更新目標(biāo)服務(wù)請求的執(zhí)行狀態(tài)為“輪詢結(jié)果完成”狀態(tài)。
具體的,本步驟s405當(dāng)對因故障未完成輪詢操作的服務(wù)請求重新完成輪詢操作,獲取到對應(yīng)的結(jié)果數(shù)據(jù)后,將該服務(wù)請求的執(zhí)行狀態(tài)由“發(fā)送異步請求成功”狀態(tài)更新為“輪詢結(jié)果完成”,避免該服務(wù)請求再次被獲取為未完成輪詢操作的服務(wù)請求,避免對該服務(wù)請求再次執(zhí)行輪詢操 作,造成資源浪費(fèi)。
進(jìn)一步的,本發(fā)明實(shí)施例的異步服務(wù)處理方法還可包括:
在步驟s403之后,若未成功發(fā)送輪詢請求,則執(zhí)行以下步驟s406。
s406,等待設(shè)定時(shí)長后返回步驟s403重新向服務(wù)提供方發(fā)送輪詢請求。
具體的,在發(fā)送輪詢請求失敗的情況下,通過本步驟s406可在故障時(shí)間較短的情況下,嘗試快速恢復(fù)對服務(wù)請求的輪詢操作。其中,設(shè)定時(shí)長可根據(jù)需要設(shè)定,一般會設(shè)置一個(gè)最大輪詢時(shí)長,例如30分鐘,30分鐘內(nèi)還未輪詢到結(jié)果,則認(rèn)為此次異步服務(wù)處理失敗,沒必要一直輪詢,浪費(fèi)資源,因此此處可設(shè)置設(shè)定時(shí)長為最大輪詢時(shí)長,例如30分鐘。
進(jìn)一步的,步驟s406具體可包括:若未成功發(fā)送輪詢請求,判斷是否達(dá)到設(shè)定的輪詢次數(shù)閾值;若否,則等待設(shè)定時(shí)長后返回步驟s403重新向服務(wù)提供方發(fā)送輪詢請求。
具體的,輪詢次數(shù)閾值和設(shè)定時(shí)長可根據(jù)需要設(shè)定,一般會設(shè)置一個(gè)最大輪詢時(shí)長,例如30分鐘,而最大輪詢時(shí)長=輪詢次數(shù)*(輪詢間隔+輪詢操作需要的時(shí)間),輪詢操作需要的時(shí)間一般為毫秒級別可以忽略不計(jì),因此可認(rèn)為最大輪詢時(shí)長=輪詢次數(shù)*輪詢間隔,因此可設(shè)置輪詢次數(shù)為5次,輪詢間隔即設(shè)定時(shí)長為6分鐘等組合方式。
進(jìn)一步的,步驟s401具體可包括:當(dāng)預(yù)設(shè)掃描周期到達(dá)時(shí),根據(jù)記錄的各服務(wù)請求的處理詳情信息,獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求作為目標(biāo)服務(wù)請求;或者在每次重新啟動時(shí),根據(jù)記錄的各服務(wù)請求的處理詳情信息,獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求作為目標(biāo)服務(wù)請求。其中,預(yù)設(shè)掃描周期可以根據(jù)需要設(shè)定,一般會設(shè)置一個(gè)最大輪詢時(shí)長,例如30分鐘,30分鐘內(nèi)還未輪詢到結(jié)果,則認(rèn)為此次異步服務(wù)處理失敗,因此此處可設(shè)置預(yù)設(shè)掃描周期大于最大輪詢時(shí)長,盡量不要設(shè)置過短,避免異步服務(wù)處理還未完成,又去獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求,例如設(shè)置為最大輪詢時(shí)長的10倍。
為更清楚的說明本發(fā)明實(shí)施例的異步服務(wù)處理方法的具體過程,圖5 給出了圖4所示實(shí)施例的異步服務(wù)處理方法一種可行實(shí)施方式的流程示意圖。如圖5所示,圖4所示實(shí)施例的異步服務(wù)處理方法應(yīng)用于圖2所示的異步服務(wù)系統(tǒng)中,應(yīng)用服務(wù)器作為服務(wù)請求方,第三方服務(wù)器作為服務(wù)提供方,包括:
s501,應(yīng)用服務(wù)器在數(shù)據(jù)庫中查找狀態(tài)為“發(fā)送異步服務(wù)請求成功”狀態(tài)且攜帶有應(yīng)用服務(wù)器的標(biāo)識的候選記錄數(shù)據(jù),候選記錄數(shù)據(jù)中還攜帶有服務(wù)請求的接收時(shí)間和異步服務(wù)請求的標(biāo)識。
s502,應(yīng)用服務(wù)器計(jì)算候選記錄數(shù)據(jù)中服務(wù)請求的接收時(shí)間與當(dāng)前時(shí)間的差值,將差值大于指定時(shí)間的候選記錄數(shù)據(jù)作為目標(biāo)記錄數(shù)據(jù)。其中,指定時(shí)間可設(shè)置為30分鐘*2=60分鐘。
s503,應(yīng)用服務(wù)器將輪詢請求發(fā)送至第三方服務(wù)器,輪詢請求中包括目標(biāo)記錄數(shù)據(jù)中攜帶的異步服務(wù)請求的標(biāo)識。
s504,應(yīng)用服務(wù)器判斷在第一設(shè)定時(shí)間內(nèi)是否接收到第三方服務(wù)器發(fā)送的輪詢請求成功的響應(yīng)。若否,則執(zhí)行步驟s505;若是,則執(zhí)行步驟s507。其中,第一設(shè)定時(shí)間可以根據(jù)需要設(shè)定,一般設(shè)置為60秒以下,例如30秒。
s505,應(yīng)用服務(wù)器判斷是否達(dá)到輪詢次數(shù)閾值。若是,則返回步驟s501;若否,則執(zhí)行步驟s506。其中,輪詢次數(shù)閾值可設(shè)置為5次。
s506,應(yīng)用服務(wù)器等待第一設(shè)定時(shí)長后返回步驟s503。其中,第一設(shè)定時(shí)長可設(shè)置為6分鐘。
s507,應(yīng)用服務(wù)器判斷輪詢請求成功的響應(yīng)中是否攜帶有結(jié)果數(shù)據(jù)。若否,則執(zhí)行步驟s508;若是,則執(zhí)行步驟s509。
s508,應(yīng)用服務(wù)器等待第二設(shè)定時(shí)長后返回步驟s503。其中,第二設(shè)定時(shí)長可設(shè)置為30分鐘。
s509,應(yīng)用服務(wù)器根據(jù)結(jié)果數(shù)據(jù)更新數(shù)據(jù)庫中對應(yīng)的目標(biāo)記錄數(shù)據(jù),并將對應(yīng)的目標(biāo)記錄數(shù)據(jù)的狀態(tài)更新為“輪詢結(jié)果完成”狀態(tài)。
s510,應(yīng)用服務(wù)器等待預(yù)設(shè)掃描周期到達(dá)后返回步驟s501。其中,預(yù)設(shè)掃描周期具體可以為。其中,預(yù)設(shè)掃描周期可設(shè)置為30分鐘*10=300分鐘。
上述圖5所示的異步服務(wù)處理方法的數(shù)據(jù)恢復(fù)流程對應(yīng)的多主機(jī)異步服務(wù)系統(tǒng)的架構(gòu)圖及數(shù)據(jù)恢復(fù)流程的交互邏輯可如圖6所示,包括:
多主機(jī)異步服務(wù)系統(tǒng)啟動,在執(zhí)行異步服務(wù)處理方法的主流程的同時(shí),執(zhí)行異步服務(wù)處理方法的數(shù)據(jù)恢復(fù)流程,應(yīng)用服務(wù)器開始計(jì)時(shí)。
s601,應(yīng)用服務(wù)器在數(shù)據(jù)庫中查找攜帶有應(yīng)用服務(wù)器的標(biāo)識、狀態(tài)為“發(fā)送異步服務(wù)請求成功”且服務(wù)請求的接收時(shí)間與當(dāng)前時(shí)間的差值大于指定時(shí)間的記錄數(shù)據(jù)作為目標(biāo)記錄數(shù)據(jù)。
s602,應(yīng)用服務(wù)器將輪詢請求發(fā)送至第三方服務(wù)器,輪詢請求中包括目標(biāo)記錄數(shù)據(jù)中攜帶的異步服務(wù)請求的標(biāo)識。
s603,應(yīng)用服務(wù)器接收第三方服務(wù)器返回的與異步服務(wù)請求的標(biāo)識對應(yīng)的結(jié)果數(shù)據(jù)。
s604,應(yīng)用服務(wù)器根據(jù)獲取到的結(jié)果數(shù)據(jù)更新數(shù)據(jù)庫中對應(yīng)的目標(biāo)記錄數(shù)據(jù),并將對應(yīng)的目標(biāo)記錄數(shù)據(jù)的狀態(tài)更新為“輪詢結(jié)果完成”狀態(tài)。
此處需要說明的是,本發(fā)明實(shí)施例中各服務(wù)請求的處理詳情信息(包括各服務(wù)請求的接收時(shí)間和執(zhí)行狀態(tài))在下述實(shí)例三、四中描述異步服務(wù)請求處理的主流程的異步服務(wù)處理方法中進(jìn)行記錄,具體過程此處不再贅述。
本發(fā)明實(shí)施例的異步服務(wù)處理方法,根據(jù)記錄的各服務(wù)請求的處理詳情信息,獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求作為目標(biāo)服務(wù)請求,針對目標(biāo)服務(wù)請求,重新向服務(wù)提供方發(fā)送輪詢請求,以請求獲取目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù),接收并記錄服務(wù)提供方返回的目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù)保證了服務(wù)提供方中的請求結(jié)果數(shù)據(jù)與服務(wù)請求方記錄的數(shù)據(jù)一致,確保用戶及時(shí)獲知準(zhǔn)確的請求結(jié)果數(shù)據(jù),由于過程中無需人力參與,降低了人力成本,提高了處理效率。
實(shí)施例三
圖7為本發(fā)明提供的異步服務(wù)處理方法又一個(gè)實(shí)施例的流程示意圖。本發(fā)明實(shí)施例的異步服務(wù)處理方法可應(yīng)用于異步服務(wù)請求方,例如 圖2所示的異步服務(wù)系統(tǒng)中的應(yīng)用服務(wù)器中,為異步服務(wù)系統(tǒng)的主流程,可與圖3-圖5所示的異步服務(wù)處理方法的數(shù)據(jù)恢復(fù)流程相結(jié)合實(shí)施,也可單獨(dú)實(shí)施。如圖7所示,本發(fā)明實(shí)施例的異步服務(wù)處理方法具體可包括:
s701,針對服務(wù)請求,執(zhí)行異步服務(wù)處理流程。
s702,在執(zhí)行異步服務(wù)處理流程的過程中,記錄服務(wù)請求的處理詳情信息。
具體的,通過在針對服務(wù)請求執(zhí)行異步服務(wù)處理流程的過程中,記錄服務(wù)請求的處理詳情信息,方便在上述圖3-圖5所示的異步服務(wù)處理方法的數(shù)據(jù)恢復(fù)流程中根據(jù)記錄的各服務(wù)請求的處理詳情信息,獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求。其中,可以將服務(wù)提供方返回的目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù)記錄在本地?cái)?shù)據(jù)庫中,也可以記錄在外部的其他存儲介質(zhì)中,例如云盤、移動硬盤等中。
本發(fā)明實(shí)施例的異步服務(wù)處理方法,通過在針對服務(wù)請求執(zhí)行異步服務(wù)處理流程的過程中,記錄服務(wù)請求的處理詳情信息,使得處理過程中不同階段對應(yīng)的服務(wù)請求的處理詳情信息不同,便于在故障恢復(fù)后查找未完成輪詢操作的服務(wù)請求,并自動完成輪詢操作,保證了服務(wù)提供方中的請求結(jié)果數(shù)據(jù)與服務(wù)請求方記錄的數(shù)據(jù)一致,確保用戶及時(shí)獲知準(zhǔn)確的請求結(jié)果數(shù)據(jù),由于過程中無需人力參與,降低了人力成本,提高了處理效率。
實(shí)施例四
圖8為本發(fā)明提供的異步服務(wù)處理方法又一個(gè)實(shí)施例的流程示意圖。本發(fā)明實(shí)施例的異步服務(wù)處理方法可應(yīng)用于異步服務(wù)請求方,例如圖2所示的異步服務(wù)系統(tǒng)中的應(yīng)用服務(wù)器中,為異步服務(wù)系統(tǒng)的主流程,可與圖3-圖5所示的異步服務(wù)處理方法的數(shù)據(jù)恢復(fù)流程相結(jié)合實(shí)施,也可單獨(dú)實(shí)施。如圖8所示,本發(fā)明實(shí)施例的異步服務(wù)處理方法為圖7所示實(shí)施例的異步服務(wù)處理方法的一種可行實(shí)施方式,具體可包括:
圖7所示實(shí)施例中的步驟s701具體可包括如下步驟s801-s805。
s801,接收服務(wù)請求。
s803,針對服務(wù)請求,向服務(wù)提供方發(fā)送異步請求。
在步驟s803之后,若成功發(fā)送異步請求,則執(zhí)行以下步驟s805。
s805,向服務(wù)提供方發(fā)送輪詢請求,以請求服務(wù)請求的結(jié)果數(shù)據(jù)。
具體的,異步服務(wù)請求方接收服務(wù)請求,針對該服務(wù)請求,向服務(wù)提供方發(fā)送異步請求,若成功發(fā)送異步請求,向服務(wù)提供方發(fā)送輪詢請求,以請求服務(wù)請求的結(jié)果數(shù)據(jù)。
進(jìn)一步的,圖7所示實(shí)施例中的步驟s702具體可包括以下步驟s802-s806中的至少一個(gè)步驟:
在步驟s801接收到服務(wù)請求之后,執(zhí)行以下步驟s802。
s802,記錄服務(wù)請求的接收時(shí)間。
在步驟s803之后,若發(fā)送異步請求成功,則執(zhí)行以下步驟s804。
s804,記錄服務(wù)請求的執(zhí)行狀態(tài)為“發(fā)送異步請求成功”狀態(tài)。
在步驟s805之后,若成功發(fā)送輪詢請求,則執(zhí)行以下步驟s806。
s806,當(dāng)服務(wù)提供方成功返回各服務(wù)請求的結(jié)果數(shù)據(jù)時(shí),更新服務(wù)請求的執(zhí)行狀態(tài)為“輪詢結(jié)果完成”狀態(tài)。
進(jìn)一步的,本發(fā)明實(shí)施例的異步服務(wù)處理方法還可包括:
在步驟s805之后,若未成功發(fā)送輪詢請求,則執(zhí)行以下步驟s807。
s807,等待設(shè)定時(shí)長后返回步驟s805重新向服務(wù)提供方發(fā)送輪詢請求。
具體的,在發(fā)送輪詢請求失敗的情況下,通過本步驟可在故障時(shí)間較短的情況下,嘗試快速恢復(fù)對服務(wù)請求的輪詢操作。其中,設(shè)定時(shí)長的設(shè)置可參見上述圖4所示實(shí)施例中的相關(guān)描述,此處不再贅述。
進(jìn)一步的,步驟s807具體可包括:若未成功發(fā)送輪詢請求,判斷是否達(dá)到設(shè)定的輪詢次數(shù)閾值;若否,則等待設(shè)定時(shí)長后返回步驟s805重新向服務(wù)提供方發(fā)送輪詢請求。其中,輪詢次數(shù)閾值和設(shè)定時(shí)長的設(shè)置可參見上述圖4所示實(shí)施例中的相關(guān)描述,此處不再贅述。
為更清楚的說明本發(fā)明實(shí)施例的異步服務(wù)處理方法的具體過程,圖9給出了圖8所示實(shí)施例的異步服務(wù)處理方法一種可行實(shí)施方式的流程示 意圖。如圖9所示,圖8所示實(shí)施例的異步服務(wù)處理方法應(yīng)用于圖2所示的異步服務(wù)系統(tǒng)中,應(yīng)用服務(wù)器作為服務(wù)請求方,第三方服務(wù)器作為服務(wù)提供方,包括:
s901,應(yīng)用服務(wù)器接收轉(zhuǎn)發(fā)服務(wù)器發(fā)送的服務(wù)請求。
s902,應(yīng)用服務(wù)器將與服務(wù)請求對應(yīng)的記錄數(shù)據(jù)存儲至數(shù)據(jù)庫中,記錄數(shù)據(jù)包括服務(wù)請求的接收時(shí)間和應(yīng)用服務(wù)器的標(biāo)識。
s903,應(yīng)用服務(wù)器將與服務(wù)請求對應(yīng)的異步服務(wù)請求發(fā)送至第三方服務(wù)器。
s904,應(yīng)用服務(wù)器判斷在第二設(shè)定時(shí)間內(nèi)是否接收到第三方服務(wù)器發(fā)送的異步服務(wù)請求成功的響應(yīng)。若否,則執(zhí)行s905;若是,則執(zhí)行s906。其中,第二設(shè)定時(shí)間可根據(jù)需要進(jìn)行設(shè)置,一般設(shè)置為60秒以下,例如30秒。
s905,應(yīng)用服務(wù)器將異步服務(wù)請求失敗的通知消息發(fā)送至轉(zhuǎn)發(fā)服務(wù)器,結(jié)束流程。
s906,應(yīng)用服務(wù)器將記錄數(shù)據(jù)的狀態(tài)設(shè)置為“發(fā)送異步服務(wù)請求成功”狀態(tài),并將異步服務(wù)請求成功的響應(yīng)中攜帶的異步服務(wù)請求的標(biāo)識添加到記錄數(shù)據(jù)中。
s907,應(yīng)用服務(wù)器將輪詢請求發(fā)送至第三方服務(wù)器,輪詢請求中包括異步服務(wù)請求的標(biāo)識。
s908,應(yīng)用服務(wù)器判斷第一設(shè)定時(shí)間內(nèi)是否接收到第三方服務(wù)器發(fā)送的輪詢請求成功的響應(yīng)。若否,則執(zhí)行步驟s909;若是,則執(zhí)行步驟s911。其中,第一設(shè)定時(shí)間可以根據(jù)需要設(shè)定,一般設(shè)置為60秒以下,例如30秒。
s909,應(yīng)用服務(wù)器判斷是否達(dá)到輪詢次數(shù)閾值。若是,則結(jié)束流程;若否,則執(zhí)行步驟s910。其中,輪詢次數(shù)閾值可設(shè)置為5次。
s910,應(yīng)用服務(wù)器等待第一設(shè)定時(shí)長后返回步驟s907。其中,第一設(shè)定時(shí)長可設(shè)置為6分鐘。
s911,應(yīng)用服務(wù)器判斷輪詢請求成功的響應(yīng)中是否攜帶有結(jié)果數(shù)據(jù)。若否,則執(zhí)行步驟s912;若是,則執(zhí)行步驟s913。
s912,應(yīng)用服務(wù)器等待第二設(shè)定時(shí)長后返回步驟s907。其中,第二設(shè)定時(shí)長可設(shè)置為30分鐘。
s913,應(yīng)用服務(wù)器根據(jù)結(jié)果數(shù)據(jù)更新數(shù)據(jù)庫中對應(yīng)的記錄數(shù)據(jù),并將對應(yīng)的記錄數(shù)據(jù)的狀態(tài)更新為“輪詢結(jié)果完成”狀態(tài),結(jié)束流程。
上述圖9所示的異步服務(wù)處理方法的主流程對應(yīng)的多主機(jī)異步服務(wù)系統(tǒng)的架構(gòu)圖及主流程的交互邏輯可如圖10所示,包括:
多主機(jī)異步服務(wù)系統(tǒng)啟動,執(zhí)行異步服務(wù)處理方法的主流程。
s1001,用戶通過客戶端向轉(zhuǎn)發(fā)服務(wù)器發(fā)出服務(wù)請求。
s1002,轉(zhuǎn)發(fā)服務(wù)器將該服務(wù)請求隨機(jī)轉(zhuǎn)發(fā)到任意一臺應(yīng)用服務(wù)器。
s1003,應(yīng)用服務(wù)器將服務(wù)請求的接收時(shí)間和應(yīng)用服務(wù)器的標(biāo)識存儲至數(shù)據(jù)庫中對應(yīng)的記錄數(shù)據(jù)中。
s1004,應(yīng)用服務(wù)器將異步服務(wù)請求發(fā)送至第三方服務(wù)器。
s1005,應(yīng)用服務(wù)器接收第三方服務(wù)器返回的異步服務(wù)請求成功的響應(yīng),該響應(yīng)中包括異步服務(wù)請求的標(biāo)識。
s1006,應(yīng)用服務(wù)器將數(shù)據(jù)庫中對應(yīng)的記錄數(shù)據(jù)的狀態(tài)設(shè)置為“發(fā)送異步服務(wù)請求成功”狀態(tài)。
s1007,應(yīng)用服務(wù)器根據(jù)第三方服務(wù)器返回的該異步服務(wù)請求的標(biāo)識將輪詢請求發(fā)送至第三方服務(wù)器,該輪詢請求中包括異步服務(wù)請求的標(biāo)識。
s1008,應(yīng)用服務(wù)器接收第三方服務(wù)器返回的與異步服務(wù)請求的標(biāo)識對應(yīng)的結(jié)果數(shù)據(jù)。
s1009,應(yīng)用服務(wù)器根據(jù)獲取到的請求結(jié)果數(shù)據(jù)更新數(shù)據(jù)庫中對應(yīng)的記錄數(shù)據(jù),并將對應(yīng)的記錄數(shù)據(jù)的狀態(tài)更新為“輪詢結(jié)果完成”狀態(tài)。
s1010,用戶想查詢結(jié)果數(shù)據(jù)時(shí),向轉(zhuǎn)發(fā)服務(wù)器發(fā)出查詢請求。
s1011,轉(zhuǎn)發(fā)服務(wù)器將該查詢請求隨機(jī)轉(zhuǎn)發(fā)到任意一臺應(yīng)用服務(wù)器。
s1012,應(yīng)用服務(wù)器在數(shù)據(jù)庫中查詢結(jié)果數(shù)據(jù),并返回給用戶。
本發(fā)明實(shí)施例的異步服務(wù)處理方法,根據(jù)記錄的各服務(wù)請求的處理詳情信息,獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求作為目標(biāo)服務(wù)請求,針對目標(biāo)服務(wù)請求,重新向服務(wù)提供方發(fā)送輪詢請求,以 請求獲取目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù),接收并記錄服務(wù)提供方返回的目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù)保證了服務(wù)提供方中的請求結(jié)果數(shù)據(jù)與服務(wù)請求方記錄的數(shù)據(jù)一致,確保用戶獲知準(zhǔn)確的請求結(jié)果數(shù)據(jù),由于過程中無需人力參與,降低了人力成本,提高了處理效率。
實(shí)施例五
圖11為本發(fā)明提供的服務(wù)器一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。本發(fā)明實(shí)施例的服務(wù)器對應(yīng)圖3-圖5所示實(shí)施例中的服務(wù)請求方,可執(zhí)行圖3-圖5所示任一實(shí)施例中的異步服務(wù)處理方法。如圖11所示,本發(fā)明實(shí)施例的服務(wù)器具體可包括獲取模塊111、輪詢模塊112和接收模塊113,其中:
獲取模塊111,用于根據(jù)記錄的各服務(wù)請求的處理詳情信息,獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求作為目標(biāo)服務(wù)請求;
輪詢模塊112,用于針對目標(biāo)服務(wù)請求,重新向服務(wù)提供方發(fā)送輪詢請求,以請求獲取目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù);
接收模塊113,用于接收并記錄服務(wù)提供方返回的目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù)。
其中,各服務(wù)請求的處理詳情信息包括各服務(wù)請求的接收時(shí)間和執(zhí)行狀態(tài)。
進(jìn)一步的,獲取模塊111具體可用于:根據(jù)各服務(wù)請求的執(zhí)行狀態(tài),獲取處于發(fā)送異步請求成功狀態(tài)的服務(wù)請求作為候選服務(wù)請求;計(jì)算候選服務(wù)請求的接收時(shí)間與當(dāng)前時(shí)間的差值,獲取差值大于指定時(shí)間的服務(wù)請求作為目標(biāo)服務(wù)請求。
進(jìn)一步的,接收模塊113還可用于:當(dāng)服務(wù)提供方成功返回目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù)時(shí),更新目標(biāo)服務(wù)請求的執(zhí)行狀態(tài)為輪詢結(jié)果完成狀態(tài)。
進(jìn)一步的,輪詢模塊112還可用于:若未成功發(fā)送輪詢請求,等待設(shè)定時(shí)長后重新向服務(wù)提供方發(fā)送輪詢請求。
進(jìn)一步的,輪詢模塊112還可用于:在等待設(shè)定時(shí)長后重新向服務(wù)提供方發(fā)送輪詢請求之前,判斷是否達(dá)到設(shè)定的輪詢次數(shù)閾值;若否, 則執(zhí)行等待設(shè)定時(shí)長后重新向服務(wù)提供方發(fā)送輪詢請求的步驟。
進(jìn)一步的,獲取模塊111具體可用于:當(dāng)預(yù)設(shè)掃描周期到達(dá)時(shí),根據(jù)記錄的各服務(wù)請求的處理詳情信息,獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求作為目標(biāo)服務(wù)請求;或者在每次重新啟動時(shí),根據(jù)記錄的各服務(wù)請求的處理詳情信息,獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求作為目標(biāo)服務(wù)請求。
進(jìn)一步的,獲取模塊111還可用于:在根據(jù)記錄的各服務(wù)請求的處理詳情信息,獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求作為目標(biāo)服務(wù)請求之前,在針對各服務(wù)請求執(zhí)行異步服務(wù)處理流程的過程中,記錄各服務(wù)請求的處理詳情信息。
進(jìn)一步的,獲取模塊111具體可用于執(zhí)行以下至少一種操作:當(dāng)接收到各服務(wù)請求時(shí),記錄各服務(wù)請求的接收時(shí)間;當(dāng)針對各服務(wù)請求成功向服務(wù)提供方發(fā)送異步請求時(shí),記錄各服務(wù)請求的執(zhí)行狀態(tài)為發(fā)送異步請求成功狀態(tài);當(dāng)服務(wù)提供方成功返回各服務(wù)請求的結(jié)果數(shù)據(jù)時(shí),更新各服務(wù)請求的執(zhí)行狀態(tài)為輪詢結(jié)果完成狀態(tài)。
具體的,本發(fā)明實(shí)施例的服務(wù)器中各模塊實(shí)現(xiàn)其功能的具體過程可參見上述圖3-圖9所示實(shí)施例中的相關(guān)描述,此處不再贅述。
本發(fā)明實(shí)施例的服務(wù)器,根據(jù)記錄的各服務(wù)請求的處理詳情信息,獲取需要重新向服務(wù)提供方請求結(jié)果數(shù)據(jù)的服務(wù)請求作為目標(biāo)服務(wù)請求,針對目標(biāo)服務(wù)請求,重新向服務(wù)提供方發(fā)送輪詢請求,以請求獲取目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù),接收并記錄服務(wù)提供方返回的目標(biāo)服務(wù)請求的結(jié)果數(shù)據(jù)保證了服務(wù)提供方中的請求結(jié)果數(shù)據(jù)與服務(wù)請求方記錄的數(shù)據(jù)一致,確保用戶及時(shí)獲知準(zhǔn)確的請求結(jié)果數(shù)據(jù),由于過程中無需人力參與,降低了人力成本,提高了處理效率。
實(shí)施例六
圖12為本發(fā)明提供的服務(wù)器一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。本發(fā)明實(shí)施例的服務(wù)器對應(yīng)圖7-圖9所示實(shí)施例中的服務(wù)請求方,可執(zhí)行圖7-圖9所示任一實(shí)施例中的異步服務(wù)處理方法。如圖12所示,本發(fā)明實(shí)施例的 服務(wù)器具體可包括執(zhí)行模塊121和記錄模塊122,其中:
執(zhí)行模塊121,用于針對服務(wù)請求,執(zhí)行異步服務(wù)處理流程。
記錄模塊122,用于在執(zhí)行模塊執(zhí)行異步服務(wù)處理流程的過程中,記錄服務(wù)請求的處理詳情信息。
進(jìn)一步的,執(zhí)行模塊121具體可用于:接收服務(wù)請求;針對服務(wù)請求,向服務(wù)提供方發(fā)送異步請求;若成功發(fā)送異步請求,向服務(wù)提供方發(fā)送輪詢請求,以請求服務(wù)請求的結(jié)果數(shù)據(jù)。
進(jìn)一步的,記錄模塊122具體可用于執(zhí)行以下至少一種操作:當(dāng)接收到服務(wù)請求時(shí),記錄服務(wù)請求的接收時(shí)間;當(dāng)針對服務(wù)請求成功向服務(wù)提供方發(fā)送異步請求時(shí),記錄服務(wù)請求的執(zhí)行狀態(tài)為發(fā)送異步請求成功狀態(tài);當(dāng)服務(wù)提供方成功返回各服務(wù)請求的結(jié)果數(shù)據(jù)時(shí),更新服務(wù)請求的執(zhí)行狀態(tài)為輪詢結(jié)果完成狀態(tài)。
進(jìn)一步的,執(zhí)行模塊121還可用于:若未成功發(fā)送輪詢請求,等待設(shè)定時(shí)長后重新向服務(wù)提供方發(fā)送輪詢請求。
進(jìn)一步的,執(zhí)行模塊121還可用于:在等待設(shè)定時(shí)長后重新向服務(wù)提供方發(fā)送輪詢請求之前,判斷是否達(dá)到設(shè)定的輪詢次數(shù)閾值;若否,則執(zhí)行等待設(shè)定時(shí)長后重新向服務(wù)提供方發(fā)送輪詢請求的步驟。
具體的,本發(fā)明實(shí)施例的服務(wù)器中各模塊實(shí)現(xiàn)其功能的具體過程可參見上述圖7-圖9所示實(shí)施例中的相關(guān)描述,此處不再贅述。
本發(fā)明實(shí)施例的服務(wù)器,通過在針對服務(wù)請求執(zhí)行異步服務(wù)處理流程的過程中,記錄服務(wù)請求的處理詳情信息,使得處理過程中不同階段對應(yīng)的服務(wù)請求的處理詳情信息不同,便于在故障恢復(fù)后查找未完成輪詢操作的服務(wù)請求,并自動完成輪詢操作,保證了服務(wù)提供方中的請求結(jié)果數(shù)據(jù)與服務(wù)請求方記錄的數(shù)據(jù)一致,確保用戶及時(shí)獲知準(zhǔn)確的請求結(jié)果數(shù)據(jù),由于過程中無需人力參與,降低了人力成本,提高了處理效率。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施 例的步驟;而前述的存儲介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。