TW201732654A - 異步服務處理方法及其伺服器 - Google Patents

異步服務處理方法及其伺服器 Download PDF

Info

Publication number
TW201732654A
TW201732654A TW106102680A TW106102680A TW201732654A TW 201732654 A TW201732654 A TW 201732654A TW 106102680 A TW106102680 A TW 106102680A TW 106102680 A TW106102680 A TW 106102680A TW 201732654 A TW201732654 A TW 201732654A
Authority
TW
Taiwan
Prior art keywords
request
service
service request
polling
asynchronous
Prior art date
Application number
TW106102680A
Other languages
English (en)
Other versions
TWI753876B (zh
Inventor
Mei-Long Huang
Original Assignee
Alibaba Group Services Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Services Ltd filed Critical Alibaba Group Services Ltd
Publication of TW201732654A publication Critical patent/TW201732654A/zh
Application granted granted Critical
Publication of TWI753876B publication Critical patent/TWI753876B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Abstract

本發明提供了一種異步服務處理方法及伺服器。該方法包括:根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求;針對所述目標服務請求,重新向所述服務提供方發送輪詢請求,以請求獲取所述目標服務請求的結果資料;接收並記錄所述服務提供方返回的所述目標服務請求的結果資料。本發明提供的異步服務處理方法及伺服器,保證了服務提供方中的請求結果資料與服務請求方記錄的資料一致,確保用戶及時獲知準確的請求結果資料,由於過程中無需人力參與,降低了人力成本,提高了處理效率。

Description

異步服務處理方法及其伺服器
本發明涉及計算機技術領域,尤其涉及一種異步服務處理方法及伺服器。
目前,有些網路(web)服務系統,為了保障高可靠性,經常會採用多主機冗餘的系統提供服務,其主要架構如圖1所示,包括一台轉發伺服器(為了防止單點故障,通常會有兩台或者多台主備轉發伺服器,如果當前的主轉發伺服器故障則自動切換到備轉發伺服器,但通常同一時間只有一台轉發伺服器投入使用)、多台相同的應用伺服器(每台應用伺服器提供完全相同的服務並且同時運行)和一個資料庫。其工作原理如下:用戶向轉發伺服器發出服務請求,轉發伺服器將該服務請求隨機轉發到任意一台應用伺服器,應用伺服器處理該服務請求的過程中會讀寫資料庫,處理完成後再將結果資料返回給用戶。這種多主機服務系統可以提高系統的穩定性,任何一台伺服器故障不會影響該系統正常提供服務,同時可以同時處理更多的用戶服務請求。
如果圖1所示的多主機服務系統中有調用第三方伺服器的異步請求服務,則其主要架構如圖2所示,在圖1所示的多主機服務系統的基礎上增加了第三方伺服器。若異步請求結果採用輪詢模式,則其工作原理如下:1、用戶通過客戶端向轉發伺服器發出服務請求;2、轉發伺服器將該服務請求隨機轉發到任意一台應用伺服器;3應用伺服器將異步服務請求發送至第三方伺服器;4、應用伺服器接收第三方伺服器返回的異步服務請求成功的響應,該響應中包括異步服務請求的標識;5、應用伺服器根據第三方伺服器返回的該異步服務請求的標識將輪詢請求發送至第三方伺服器,該輪詢請求中包括異步服務請求的標識;6、應用伺服器接收第三方伺服器返回的與異步服務請求的標識對應的請求結果資料;7、應用伺服器根據獲取到的請求結果資料更新資料庫;8、用戶想查詢請求結果資料時,向轉發伺服器發出查詢請求;9、轉發伺服器將該查詢請求隨機轉發到任意一台應用伺服器;10、應用伺服器在資料庫中查詢請求結果資料,並返回給用戶。
在應用伺服器輪詢第三方伺服器的過程中,若應用伺服器因故障或升級發佈停機或網路異常導致應用伺服器無法連接上第三方伺服器,則輪詢停止,資料庫不更新,導致第三方伺服器中的請求結果資料與資料庫中的資料不一致,用戶無法獲知準確的請求結果資料。
為保證第三方伺服器中的請求結果資料與資料庫中的資料一致,確保用戶獲知準確的請求結果資料,現有技術 中通過運維人員手動查詢資料庫中的資料與第三方伺服器中的資料是否一致,來確定未完成輪詢操作的資料,並手動訂正資料庫中未完成輪詢操作的資料來恢復資料,但由於為事後處理,無法保證用戶及時獲知準確的請求結果資料,且人力成本較高,處理效率較低。
本發明提供一種異步服務處理方法及伺服器,無需人力參與,即可實現在故障恢復後自動完成未完成的輪詢操作,保證服務提供方中的請求結果資料與服務請求方記錄的資料一致,確保用戶及時獲知準確的請求結果資料,降低了人力成本,提高了處理效率。
為達到上述目的,本發明採用如下技術方案:
一方面,本發明提供一種異步服務處理方法,包括:根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求;針對所述目標服務請求,重新向所述服務提供方發送輪詢請求,以請求獲取所述目標服務請求的結果資料;接收並記錄所述服務提供方返回的所述目標服務請求的結果資料。
另一方面,本發明提供一種異步服務處理方法,包括:針對服務請求,執行異步服務處理流程;在執行所述異步服務處理流程的過程中,記錄所述服務請求的處理詳情資訊。
另一方面,本發明提供一種伺服器,包括:獲取模組,用於根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求;輪詢模組,用於針對所述目標服務請求,重新向所述服務提供方發送輪詢請求,以請求獲取所述目標服務請求的結果資料;接收模組,用於接收並記錄所述服務提供方返回的所述目標服務請求的結果資料。
另一方面,本發明提供一種伺服器,包括:執行模組,用於針對服務請求,執行異步服務處理流程;第二記錄模組,用於在所述執行模組執行所述異步服務處理流程的過程中,記錄所述服務請求的處理詳情資訊。
本發明提供的異步服務處理方法及伺服器,根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求,針對所述目標服務請求,重新向所述服務提供方發送輪詢請求,以請求獲取所述目標服務請求的結果資料,接收並記錄所述服務提供方返回的所述目標服務請求的結果資料,保證了服務提供方中的請求結果資料與服務請求方記錄的資料一致,確保用戶及時獲知準確的請求結果資料,由於過程中無需人力參與,降低了人力成本,提高了處理效率。
上述說明僅是本發明技術方案的概述,為了能夠更清楚瞭解本發明的技術手段,而可依照說明書的內容予以實施,並且為了讓本發明的上述和其它目的、特徵和優點能夠更明顯易懂,以下特舉本發明的具體實施方式。
111‧‧‧獲取模組
112‧‧‧輪詢模組
113‧‧‧接收模組
121‧‧‧執行模組
122‧‧‧記錄模組
通過閱讀下文較佳實施方式的詳細描述,各種其他的優點和益處對於本領域普通技術人員將變得清楚明瞭。附圖僅用於示出較佳實施方式的目的,而並不認為是對本發明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:圖1為現有的多主機服務系統的架構示意圖;圖2為現有的多主機異步服務系統的架構及工作原理示意圖;圖3為本發明提供的異步服務處理方法一個實施例的流程示意圖;圖4為本發明提供的異步服務處理方法又一個實施例的流程示意圖;圖5為圖4所示實施例的異步服務處理方法一種可行實施方式的流程示意圖;圖6為圖5所示的異步服務處理方法應用於多主機異步服務系統的架構及交互邏輯示意圖;圖7為本發明提供的異步服務處理方法又一個實施例的流程示意圖;圖8為本發明提供的異步服務處理方法又一個實施例的流程示意圖;圖9為圖8所示實施例的異步服務處理方法一種可行實施方式的流程示意圖; 圖10為圖9所示的異步服務處理方法應用於多主機異步服務系統的架構及交互邏輯示意圖;圖11為本發明提供的伺服器一個實施例的結構示意圖;圖12為本發明提供的伺服器又一個實施例的結構示意圖。
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這裡闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,並且能夠將本公開的範圍完整的傳達給本領域的技術人員。
下面結合附圖對本發明實施例的異步服務處理方法及伺服器進行詳細描述。
實施例一
圖3為本發明提供的異步服務處理方法一個實施例的流程示意圖。本發明實施例的異步服務處理方法可應用於異步服務請求方,例如圖2所示的異步服務系統中的應用伺服器中,為異步服務系統的資料恢復流程。如圖3所示,本發明實施例的異步服務處理方法具體可包括:
S301,根據記錄的各服務請求的處理詳情資訊,獲取 需要重新向服務提供方請求結果資料的服務請求作為目標服務請求。
S302,針對目標服務請求,重新向服務提供方發送輪詢請求,以請求獲取目標服務請求的結果資料。
S303,接收並記錄服務提供方返回的目標服務請求的結果資料。
具體的,本發明實施例描述了異步服務請求處理的資料恢復流程。異步服務請求方根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求,即獲取因故障未完成輪詢操作的服務請求作為目標服務請求。針對目標服務請求,重新執行輪詢操作,即重新向服務提供方發送輪詢請求,以請求獲取目標服務請求的結果資料,接收並記錄服務提供方返回的目標服務請求的結果資料,以保證服務提供方的請求結果資料與服務請求方記錄的結果資料一致。其中,可以將服務提供方返回的目標服務請求的結果資料記錄在本地資料庫中,也可以記錄在外部的其他儲存媒體中,例如雲盤、移動硬盤等中。
本發明實施例的異步服務處理方法,根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求,針對目標服務請求,重新向服務提供方發送輪詢請求,以請求獲取目標服務請求的結果資料,接收並記錄服務提供方返回的目標服務請求的結果資料,保證了服務提供方中的請求結果資料 與服務請求方記錄的資料一致,確保用戶及時獲知準確的請求結果資料,由於過程中無需人力參與,降低了人力成本,提高了處理效率。
實施例二
圖4為本發明提供的異步服務處理方法又一個實施例的流程示意圖。本發明實施例的異步服務處理方法可應用於異步服務請求方,例如圖2所示的異步服務系統中的應用伺服器中,為異步服務系統的資料恢復流程。如圖4所示,本發明實施例的異步服務處理方法為圖3所示實施例的異步服務處理方法的一種可行實施方式,具體可包括:
圖3所示實施例中的步驟S301中,各服務請求的處理詳情資訊具體可包括各服務請求的接收時間和執行狀態,執行狀態具體可包括“發送異步請求成功”狀態和“輪詢結果完成”狀態。因此圖3所示實施例中的步驟S301具體可包括如下步驟S401-S402。
S401,根據各服務請求的執行狀態,獲取處於“發送異步請求成功”狀態的服務請求作為候選服務請求。
S402,計算候選服務請求的接收時間與當前時間的差值,獲取差值大於指定時間的服務請求作為目標服務請求。
具體的,步驟S401-S402中,通過獲取接收時間與當前時間的差值大於指定時間,且執行狀態為“發送異步請求成功”狀態的服務請求,以獲取因故障未完成輪詢操作 的服務請求。其中,指定時間可以根據需要設定,一般會設置一個最大輪詢時長,例如30分鐘,30分鐘內還未輪詢到結果,則認為此次異步服務處理失敗,因此此處可設置指定時間大於最大輪詢時長,但也不能設置過大,避免資料恢復時間過長,例如設置為最大輪詢時長的2倍。
S403,針對目標服務請求,重新向服務提供方發送輪詢請求,以請求獲取目標服務請求的結果資料。
若輪詢請求發送成功,則執行以下步驟S404。
S404,接收並記錄服務提供方返回的目標服務請求的結果資料。
具體的,步驟S403-S404與圖3所示實施例中的步驟S302-S303相同,具體過程可參見圖3所示實施例中的相關描述,此處不再贅述。
進一步的,本發明實施例的異步服務處理方法還可包括:
S405,當服務提供方成功返回目標服務請求的結果資料時,更新目標服務請求的執行狀態為“輪詢結果完成”狀態。
具體的,本步驟S405當對因故障未完成輪詢操作的服務請求重新完成輪詢操作,獲取到對應的結果資料後,將該服務請求的執行狀態由“發送異步請求成功”狀態更新為“輪詢結果完成”,避免該服務請求再次被獲取為未完成輪詢操作的服務請求,避免對該服務請求再次執行輪詢操作,造成資源浪費。
進一步的,本發明實施例的異步服務處理方法還可包括:
在步驟S403之後,若未成功發送輪詢請求,則執行以下步驟S406。
S406,等待設定時長後返回步驟S403重新向服務提供方發送輪詢請求。
具體的,在發送輪詢請求失敗的情況下,通過本步驟S406可在故障時間較短的情況下,嘗試快速恢復對服務請求的輪詢操作。其中,設定時長可根據需要設定,一般會設置一個最大輪詢時長,例如30分鐘,30分鐘內還未輪詢到結果,則認為此次異步服務處理失敗,沒必要一直輪詢,浪費資源,因此此處可設置設定時長為最大輪詢時長,例如30分鐘。
進一步的,步驟S406具體可包括:若未成功發送輪詢請求,判斷是否達到設定的輪詢次數閾值;若否,則等待設定時長後返回步驟S403重新向服務提供方發送輪詢請求。
具體的,輪詢次數閾值和設定時長可根據需要設定,一般會設置一個最大輪詢時長,例如30分鐘,而最大輪詢時長=輪詢次數*(輪詢間隔+輪詢操作需要的時間),輪詢操作需要的時間一般為毫秒級別可以忽略不計,因此可認為最大輪詢時長=輪詢次數*輪詢間隔,因此可設置輪詢次數為5次,輪詢間隔即設定時長為6分鐘等組合方式。
進一步的,步驟S401具體可包括:當預設掃描週期到達時,根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求;或者在每次重新啟動時,根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求。其中,預設掃描週期可以根據需要設定,一般會設置一個最大輪詢時長,例如30分鐘,30分鐘內還未輪詢到結果,則認為此次異步服務處理失敗,因此此處可設置預設掃描週期大於最大輪詢時長,儘量不要設置過短,避免異步服務處理還未完成,又去獲取需要重新向服務提供方請求結果資料的服務請求,例如設置為最大輪詢時長的10倍。
為更清楚的說明本發明實施例的異步服務處理方法的具體過程,圖5給出了圖4所示實施例的異步服務處理方法一種可行實施方式的流程示意圖。如圖5所示,圖4所示實施例的異步服務處理方法應用於圖2所示的異步服務系統中,應用伺服器作為服務請求方,第三方伺服器作為服務提供方,包括:
S501,應用伺服器在資料庫中查找狀態為“發送異步服務請求成功”狀態且攜帶有應用伺服器的標識的候選記錄資料,候選記錄資料中還攜帶有服務請求的接收時間和異步服務請求的標識。
S502,應用伺服器計算候選記錄資料中服務請求的接收時間與當前時間的差值,將差值大於指定時間的候 選記錄資料作為目標記錄資料。其中,指定時間可設置為30分鐘*2=60分鐘。
S503,應用伺服器將輪詢請求發送至第三方伺服器,輪詢請求中包括目標記錄資料中攜帶的異步服務請求的標識。
S504,應用伺服器判斷在第一設定時間內是否接收到第三方伺服器發送的輪詢請求成功的響應。若否,則執行步驟S505;若是,則執行步驟S507。其中,第一設定時間可以根據需要設定,一般設置為60秒以下,例如30秒。
S505,應用伺服器判斷是否達到輪詢次數閾值。若是,則返回步驟S501;若否,則執行步驟S506。其中,輪詢次數閾值可設置為5次。
S506,應用伺服器等待第一設定時長後返回步驟S503。其中,第一設定時長可設置為6分鐘。
S507,應用伺服器判斷輪詢請求成功的響應中是否攜帶有結果資料。若否,則執行步驟S508;若是,則執行步驟S509。
S508,應用伺服器等待第二設定時長後返回步驟S503。其中,第二設定時長可設置為30分鐘。
S509,應用伺服器根據結果資料更新資料庫中對應的目標記錄資料,並將對應的目標記錄資料的狀態更新為“輪詢結果完成”狀態。
S510,應用伺服器等待預設掃描週期到達後返回步驟 S501。其中,預設掃描週期具體可以為。其中,預設掃描週期可設置為30分鐘*10=300分鐘。
上述圖5所示的異步服務處理方法的資料恢復流程對應的多主機異步服務系統的架構圖及資料恢復流程的交互邏輯可如圖6所示,包括:
多主機異步服務系統啟動,在執行異步服務處理方法的主流程的同時,執行異步服務處理方法的資料恢復流程,應用伺服器開始計時。
S601,應用伺服器在資料庫中查找攜帶有應用伺服器的標識、狀態為“發送異步服務請求成功”且服務請求的接收時間與當前時間的差值大於指定時間的記錄資料作為目標記錄資料。
S602,應用伺服器將輪詢請求發送至第三方伺服器,輪詢請求中包括目標記錄資料中攜帶的異步服務請求的標識。
S603,應用伺服器接收第三方伺服器返回的與異步服務請求的標識對應的結果資料。
S604,應用伺服器根據獲取到的結果資料更新資料庫中對應的目標記錄資料,並將對應的目標記錄資料的狀態更新為“輪詢結果完成”狀態。
此處需要說明的是,本發明實施例中各服務請求的處理詳情資訊(包括各服務請求的接收時間和執行狀態)在下述實例三、四中描述異步服務請求處理的主流程的異步服務處理方法中進行記錄,具體過程此處不再 贅述。
本發明實施例的異步服務處理方法,根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求,針對目標服務請求,重新向服務提供方發送輪詢請求,以請求獲取目標服務請求的結果資料,接收並記錄服務提供方返回的目標服務請求的結果資料保證了服務提供方中的請求結果資料與服務請求方記錄的資料一致,確保用戶及時獲知準確的請求結果資料,由於過程中無需人力參與,降低了人力成本,提高了處理效率。
實施例三
圖7為本發明提供的異步服務處理方法又一個實施例的流程示意圖。本發明實施例的異步服務處理方法可應用於異步服務請求方,例如圖2所示的異步服務系統中的應用伺服器中,為異步服務系統的主流程,可與圖3-圖5所示的異步服務處理方法的資料恢復流程相結合實施,也可單獨實施。如圖7所示,本發明實施例的異步服務處理方法具體可包括:
S701,針對服務請求,執行異步服務處理流程。
S702,在執行異步服務處理流程的過程中,記錄服務請求的處理詳情資訊。
具體的,通過在針對服務請求執行異步服務處理流程的過程中,記錄服務請求的處理詳情資訊,方便在上 述圖3-圖5所示的異步服務處理方法的資料恢復流程中根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求。其中,可以將服務提供方返回的目標服務請求的結果資料記錄在本地資料庫中,也可以記錄在外部的其他儲存媒體中,例如雲盤、移動硬盤等中。
本發明實施例的異步服務處理方法,通過在針對服務請求執行異步服務處理流程的過程中,記錄服務請求的處理詳情資訊,使得處理過程中不同階段對應的服務請求的處理詳情資訊不同,便於在故障恢復後查找未完成輪詢操作的服務請求,並自動完成輪詢操作,保證了服務提供方中的請求結果資料與服務請求方記錄的資料一致,確保用戶及時獲知準確的請求結果資料,由於過程中無需人力參與,降低了人力成本,提高了處理效率。
實施例四
圖8為本發明提供的異步服務處理方法又一個實施例的流程示意圖。本發明實施例的異步服務處理方法可應用於異步服務請求方,例如圖2所示的異步服務系統中的應用伺服器中,為異步服務系統的主流程,可與圖3-圖5所示的異步服務處理方法的資料恢復流程相結合實施,也可單獨實施。如圖8所示,本發明實施例的異步服務處理方法為圖7所示實施例的異步服務處理方法的 一種可行實施方式,具體可包括:
圖7所示實施例中的步驟S701具體可包括如下步驟S801-S805。
S801,接收服務請求。
S803,針對服務請求,向服務提供方發送異步請求。
在步驟S803之後,若成功發送異步請求,則執行以下步驟S805。
S805,向服務提供方發送輪詢請求,以請求服務請求的結果資料。
具體的,異步服務請求方接收服務請求,針對該服務請求,向服務提供方發送異步請求,若成功發送異步請求,向服務提供方發送輪詢請求,以請求服務請求的結果資料。
進一步的,圖7所示實施例中的步驟S702具體可包括以下步驟S802-S806中的至少一個步驟:
在步驟S801接收到服務請求之後,執行以下步驟S802。
S802,記錄服務請求的接收時間。
在步驟S803之後,若發送異步請求成功,則執行以下步驟S804。
S804,記錄服務請求的執行狀態為“發送異步請求成功”狀態。
在步驟S805之後,若成功發送輪詢請求,則執行以 下步驟S806。
S806,當服務提供方成功返回各服務請求的結果資料時,更新服務請求的執行狀態為“輪詢結果完成”狀態。
進一步的,本發明實施例的異步服務處理方法還可包括:
在步驟S805之後,若未成功發送輪詢請求,則執行以下步驟S807。
S807,等待設定時長後返回步驟S805重新向服務提供方發送輪詢請求。
具體的,在發送輪詢請求失敗的情況下,通過本步驟可在故障時間較短的情況下,嘗試快速恢復對服務請求的輪詢操作。其中,設定時長的設置可參見上述圖4所示實施例中的相關描述,此處不再贅述。
進一步的,步驟S807具體可包括:若未成功發送輪詢請求,判斷是否達到設定的輪詢次數閾值;若否,則等待設定時長後返回步驟S805重新向服務提供方發送輪詢請求。其中,輪詢次數閾值和設定時長的設置可參見上述圖4所示實施例中的相關描述,此處不再贅述。
為更清楚的說明本發明實施例的異步服務處理方法的具體過程,圖9給出了圖8所示實施例的異步服務處理方法一種可行實施方式的流程示意圖。如圖9所示,圖8所示實施例的異步服務處理方法應用於圖2所示的異步服務系統中,應用伺服器作為服務請求方,第三方伺服器作為 服務提供方,包括:
S901,應用伺服器接收轉發伺服器發送的服務請求。
S902,應用伺服器將與服務請求對應的記錄資料儲存至資料庫中,記錄資料包括服務請求的接收時間和應用伺服器的標識。
S903,應用伺服器將與服務請求對應的異步服務請求發送至第三方伺服器。
S904,應用伺服器判斷在第二設定時間內是否接收到第三方伺服器發送的異步服務請求成功的響應。若否,則執行S905;若是,則執行S906。其中,第二設定時間可根據需要進行設置,一般設置為60秒以下,例如30秒。
S905,應用伺服器將異步服務請求失敗的通知消息發送至轉發伺服器,結束流程。
S906,應用伺服器將記錄資料的狀態設置為“發送異步服務請求成功”狀態,並將異步服務請求成功的響應中攜帶的異步服務請求的標識添加到記錄資料中。
S907,應用伺服器將輪詢請求發送至第三方伺服器,輪詢請求中包括異步服務請求的標識。
S908,應用伺服器判斷第一設定時間內是否接收到第三方伺服器發送的輪詢請求成功的響應。若否,則執行步驟S909;若是,則執行步驟S911。其中,第一設定時間可以根據需要設定,一般設置為60秒以下,例如30秒。
S909,應用伺服器判斷是否達到輪詢次數閾值。若 是,則結束流程;若否,則執行步驟S910。其中,輪詢次數閾值可設置為5次。
S910,應用伺服器等待第一設定時長後返回步驟S907。其中,第一設定時長可設置為6分鐘。
S911,應用伺服器判斷輪詢請求成功的響應中是否攜帶有結果資料。若否,則執行步驟S912;若是,則執行步驟S913。
S912,應用伺服器等待第二設定時長後返回步驟S907。其中,第二設定時長可設置為30分鐘。
S913,應用伺服器根據結果資料更新資料庫中對應的記錄資料,並將對應的記錄資料的狀態更新為“輪詢結果完成”狀態,結束流程。
上述圖9所示的異步服務處理方法的主流程對應的多主機異步服務系統的架構圖及主流程的交互邏輯可如圖10所示,包括:
多主機異步服務系統啟動,執行異步服務處理方法的主流程。
S1001,用戶通過客戶端向轉發伺服器發出服務請求。
S1002,轉發伺服器將該服務請求隨機轉發到任意一台應用伺服器。
S1003,應用伺服器將服務請求的接收時間和應用伺服器的標識儲存至資料庫中對應的記錄資料中。
S1004,應用伺服器將異步服務請求發送至第三方伺 服器。
S1005,應用伺服器接收第三方伺服器返回的異步服務請求成功的響應,該響應中包括異步服務請求的標識。
S1006,應用伺服器將資料庫中對應的記錄資料的狀態設置為“發送異步服務請求成功”狀態。
S1007,應用伺服器根據第三方伺服器返回的該異步服務請求的標識將輪詢請求發送至第三方伺服器,該輪詢請求中包括異步服務請求的標識。
S1008,應用伺服器接收第三方伺服器返回的與異步服務請求的標識對應的結果資料。
S1009,應用伺服器根據獲取到的請求結果資料更新資料庫中對應的記錄資料,並將對應的記錄資料的狀態更新為“輪詢結果完成”狀態。
S1010,用戶想查詢結果資料時,向轉發伺服器發出查詢請求。
S1011,轉發伺服器將該查詢請求隨機轉發到任意一台應用伺服器。
S1012,應用伺服器在資料庫中查詢結果資料,並返回給用戶。
本發明實施例的異步服務處理方法,根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求,針對目標服務請求,重新向服務提供方發送輪詢請求,以請求獲 取目標服務請求的結果資料,接收並記錄服務提供方返回的目標服務請求的結果資料保證了服務提供方中的請求結果資料與服務請求方記錄的資料一致,確保用戶獲知準確的請求結果資料,由於過程中無需人力參與,降低了人力成本,提高了處理效率。
實施例五
圖11為本發明提供的伺服器一個實施例的結構示意圖。本發明實施例的伺服器對應圖3-圖5所示實施例中的服務請求方,可執行圖3-圖5所示任一實施例中的異步服務處理方法。如圖11所示,本發明實施例的伺服器具體可包括獲取模組111、輪詢模組112和接收模組113,其中:獲取模組111,用於根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求;輪詢模組112,用於針對目標服務請求,重新向服務提供方發送輪詢請求,以請求獲取目標服務請求的結果資料;接收模組113,用於接收並記錄服務提供方返回的目標服務請求的結果資料。
其中,各服務請求的處理詳情資訊包括各服務請求的接收時間和執行狀態。
進一步的,獲取模組111具體可用於:根據各服務請 求的執行狀態,獲取處於發送異步請求成功狀態的服務請求作為候選服務請求;計算候選服務請求的接收時間與當前時間的差值,獲取差值大於指定時間的服務請求作為目標服務請求。
進一步的,接收模組113還可用於:當服務提供方成功返回目標服務請求的結果資料時,更新目標服務請求的執行狀態為輪詢結果完成狀態。
進一步的,輪詢模組112還可用於:若未成功發送輪詢請求,等待設定時長後重新向服務提供方發送輪詢請求。
進一步的,輪詢模組112還可用於:在等待設定時長後重新向服務提供方發送輪詢請求之前,判斷是否達到設定的輪詢次數閾值;若否,則執行等待設定時長後重新向服務提供方發送輪詢請求的步驟。
進一步的,獲取模組111具體可用於:當預設掃描週期到達時,根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求;或者在每次重新啟動時,根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求。
進一步的,獲取模組111還可用於:在根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求之前,在針對各服務請求執行異步服務處理流程的過程中,記錄各服務請 求的處理詳情資訊。
進一步的,獲取模組111具體可用於執行以下至少一種操作:當接收到各服務請求時,記錄各服務請求的接收時間;當針對各服務請求成功向服務提供方發送異步請求時,記錄各服務請求的執行狀態為發送異步請求成功狀態;當服務提供方成功返回各服務請求的結果資料時,更新各服務請求的執行狀態為輪詢結果完成狀態。
具體的,本發明實施例的伺服器中各模組實現其功能的具體過程可參見上述圖3-圖9所示實施例中的相關描述,此處不再贅述。
本發明實施例的伺服器,根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求,針對目標服務請求,重新向服務提供方發送輪詢請求,以請求獲取目標服務請求的結果資料,接收並記錄服務提供方返回的目標服務請求的結果資料保證了服務提供方中的請求結果資料與服務請求方記錄的資料一致,確保用戶及時獲知準確的請求結果資料,由於過程中無需人力參與,降低了人力成本,提高了處理效率。
實施例六
圖12為本發明提供的伺服器一個實施例的結構示意圖。本發明實施例的伺服器對應圖7-圖9所示實施例中的服務請求方,可執行圖7-圖9所示任一實施例中的異 步服務處理方法。如圖12所示,本發明實施例的伺服器具體可包括執行模組121和記錄模組122,其中:
執行模組121,用於針對服務請求,執行異步服務處理流程。
記錄模組122,用於在執行模組執行異步服務處理流程的過程中,記錄服務請求的處理詳情資訊。
進一步的,執行模組121具體可用於:接收服務請求;針對服務請求,向服務提供方發送異步請求;若成功發送異步請求,向服務提供方發送輪詢請求,以請求服務請求的結果資料。
進一步的,記錄模組122具體可用於執行以下至少一種操作:當接收到服務請求時,記錄服務請求的接收時間;當針對服務請求成功向服務提供方發送異步請求時,記錄服務請求的執行狀態為發送異步請求成功狀態;當服務提供方成功返回各服務請求的結果資料時,更新服務請求的執行狀態為輪詢結果完成狀態。
進一步的,執行模組121還可用於:若未成功發送輪詢請求,等待設定時長後重新向服務提供方發送輪詢請求。
進一步的,執行模組121還可用於:在等待設定時長後重新向服務提供方發送輪詢請求之前,判斷是否達到設定的輪詢次數閾值;若否,則執行等待設定時長後重新向服務提供方發送輪詢請求的步驟。
具體的,本發明實施例的伺服器中各模組實現其功 能的具體過程可參見上述圖7-圖9所示實施例中的相關描述,此處不再贅述。
本發明實施例的伺服器,通過在針對服務請求執行異步服務處理流程的過程中,記錄服務請求的處理詳情資訊,使得處理過程中不同階段對應的服務請求的處理詳情資訊不同,便於在故障恢復後查找未完成輪詢操作的服務請求,並自動完成輪詢操作,保證了服務提供方中的請求結果資料與服務請求方記錄的資料一致,確保用戶及時獲知準確的請求結果資料,由於過程中無需人力參與,降低了人力成本,提高了處理效率。
本領域普通技術人員可以理解:實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬體來完成。前述的程序可以儲存於一計算機可讀取儲存媒體中。該程序在執行時,執行包括上述各方法實施例的步驟;而前述的儲存媒體包括:ROM、RAM、磁碟或者光碟等各種可以儲存程序代碼的媒體。
最後應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的範圍。

Claims (26)

  1. 一種異步服務處理方法,包括:根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求;針對所述目標服務請求,重新向所述服務提供方發送輪詢請求,以請求獲取所述目標服務請求的結果資料;接收並記錄所述服務提供方返回的所述目標服務請求的結果資料。
  2. 根據申請專利範圍第1項所述的方法,其中,所述各服務請求的處理詳情資訊包括各服務請求的接收時間和執行狀態;所述根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求,包括:根據所述各服務請求的執行狀態,獲取處於發送異步請求成功狀態的服務請求作為候選服務請求;計算所述候選服務請求的接收時間與當前時間的差值,獲取所述差值大於指定時間的服務請求作為所述目標服務請求。
  3. 根據申請專利範圍第2項所述的方法,其中,還包括:當所述服務提供方成功返回所述目標服務請求的結果資料時,更新所述目標服務請求的執行狀態為輪詢結果完 成狀態。
  4. 根據申請專利範圍第1項所述的方法,其中,還包括:若未成功發送所述輪詢請求,等待設定時長後重新向所述服務提供方發送所述輪詢請求。
  5. 根據申請專利範圍第4項所述的方法,其中,所述等待設定時長後重新向所述服務提供方發送所述輪詢請求之前,還包括:判斷是否達到設定的輪詢次數閾值;若否,則執行所述等待所述設定時長後重新向所述服務提供方發送所述輪詢請求的步驟。
  6. 根據申請專利範圍第1項所述的方法,其中,所述根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求,包括:當預設掃描週期到達時,根據記錄的所述各服務請求的處理詳情資訊,獲取需要重新向所述服務提供方請求結果資料的服務請求作為所述目標服務請求;或者在每次重新啟動時,根據記錄的所述各服務請求的處理詳情資訊,獲取需要重新向所述服務提供方請求結果資料的服務請求作為所述目標服務請求。
  7. 根據申請專利範圍第1-6項任一項所述的方法,其中,所述根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服 務請求之前,還包括:在針對所述各服務請求執行異步服務處理流程的過程中,記錄所述各服務請求的處理詳情資訊。
  8. 根據申請專利範圍第7項所述的方法,其中,所述在針對所述各服務請求執行異步服務處理流程的過程中,記錄所述各服務請求的處理詳情資訊,包括以下至少一種操作:當接收到所述各服務請求時,記錄所述各服務請求的接收時間;當針對所述各服務請求成功向所述服務提供方發送所述異步請求時,記錄所述各服務請求的執行狀態為發送異步請求成功狀態;當所述服務提供方成功返回所述各服務請求的結果資料時,更新所述各服務請求的執行狀態為輪詢結果完成狀態。
  9. 一種異步服務處理方法,包括:針對服務請求,執行異步服務處理流程;在執行所述異步服務處理流程的過程中,記錄所述服務請求的處理詳情資訊。
  10. 根據申請專利範圍第9項所述的方法,其中,所述針對服務請求,執行異步服務處理流程,包括:接收所述服務請求;針對所述服務請求,向服務提供方發送異步請求;若成功發送所述異步請求,向所述服務提供方發送輪 詢請求,以請求所述服務請求的結果資料。
  11. 根據申請專利範圍第10項所述的方法,其中,所述在執行所述異步服務處理流程的過程中,記錄所述服務請求的處理詳情資訊,包括以下至少一種操作:當接收到所述服務請求時,記錄所述服務請求的接收時間;當針對所述服務請求成功向所述服務提供方發送所述異步請求時,記錄所述服務請求的執行狀態為發送異步請求成功狀態;當所述服務提供方成功返回所述各服務請求的結果資料時,更新所述服務請求的執行狀態為輪詢結果完成狀態。
  12. 根據申請專利範圍第10項所述的方法,其中,所述針對服務請求,執行異步服務處理流程,還包括:若未成功發送所述輪詢請求,等待設定時長後重新向所述服務提供方發送所述輪詢請求。
  13. 根據申請專利範圍第12項所述的方法,其中,所述等待設定時長後重新向所述服務提供方發送所述輪詢請求之前,還包括:判斷是否達到設定的輪詢次數閾值;若否,則執行所述等待設定時長後重新向所述服務提供方發送所述輪詢請求的步驟。
  14. 一種伺服器,包括:獲取模組,用於根據記錄的各服務請求的處理詳情資 訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求;輪詢模組,用於針對所述目標服務請求,重新向所述服務提供方發送輪詢請求,以請求獲取所述目標服務請求的結果資料;接收模組,用於接收並記錄所述服務提供方返回的所述目標服務請求的結果資料。
  15. 根據申請專利範圍第14項所述的伺服器,其中,所述各服務請求的處理詳情資訊包括各服務請求的接收時間和執行狀態;所述獲取模組用於:根據所述各服務請求的執行狀態,獲取處於發送異步請求成功狀態的服務請求作為候選服務請求;計算所述候選服務請求的接收時間與當前時間的差值,獲取所述差值大於指定時間的服務請求作為所述目標服務請求。
  16. 根據申請專利範圍第15項所述的伺服器,其中,所述接收模組還用於:當所述服務提供方成功返回所述目標服務請求的結果資料時,更新所述目標服務請求的執行狀態為輪詢結果完成狀態。
  17. 根據申請專利範圍第14項所述的伺服器,其中,所述輪詢模組還用於:若未成功發送所述輪詢請求,等待設定時長後重新向 所述服務提供方發送所述輪詢請求。
  18. 根據申請專利範圍第17項所述的伺服器,其中,所述輪詢模組還用於:在所述等待設定時長後重新向所述服務提供方發送所述輪詢請求之前,判斷是否達到設定的輪詢次數閾值;若否,則執行所述等待所述設定時長後重新向所述服務提供方發送所述輪詢請求的步驟。
  19. 根據申請專利範圍第14項所述的伺服器,其中,所述獲取模組用於:當預設掃描週期到達時,根據記錄的所述各服務請求的處理詳情資訊,獲取需要重新向所述服務提供方請求結果資料的服務請求作為所述目標服務請求;或者在每次重新啟動時,根據記錄的所述各服務請求的處理詳情資訊,獲取需要重新向所述服務提供方請求結果資料的服務請求作為所述目標服務請求。
  20. 根據申請專利範圍第14-19項任一項所述的伺服器,其中,所述獲取模組還用於:在所述根據記錄的各服務請求的處理詳情資訊,獲取需要重新向服務提供方請求結果資料的服務請求作為目標服務請求之前,在針對所述各服務請求執行異步服務處理流程的過程中,記錄所述各服務請求的處理詳情資訊。
  21. 根據申請專利範圍第20項所述的伺服器,其中,所述獲取模組用於執行以下至少一種操作:當接收到所述各服務請求時,記錄所述各服務請求的 接收時間;當針對所述各服務請求成功向所述服務提供方發送所述異步請求時,記錄所述各服務請求的執行狀態為發送異步請求成功狀態;當所述服務提供方成功返回所述各服務請求的結果資料時,更新所述各服務請求的執行狀態為輪詢結果完成狀態。
  22. 一種伺服器,包括:執行模組,用於針對服務請求,執行異步服務處理流程;記錄模組,用於在所述執行模組執行所述異步服務處理流程的過程中,記錄所述服務請求的處理詳情資訊。
  23. 根據申請專利範圍第22項所述的伺服器,其中,所述執行模組用於:接收所述服務請求;針對所述服務請求,向服務提供方發送異步請求;若成功發送所述異步請求,向所述服務提供方發送輪詢請求,以請求所述服務請求的結果資料。
  24. 根據申請專利範圍第23項所述的伺服器,其中,所述記錄模組用於執行以下至少一種操作:當接收到所述服務請求時,記錄所述服務請求的接收時間;當針對所述服務請求成功向所述服務提供方發送所述異步請求時,記錄所述服務請求的執行狀態為發送異步請 求成功狀態;當所述服務提供方成功返回所述各服務請求的結果資料時,更新所述服務請求的執行狀態為輪詢結果完成狀態。
  25. 根據申請專利範圍第23項所述的伺服器,其中,所述執行模組還用於:若未成功發送所述輪詢請求,等待設定時長後重新向所述服務提供方發送所述輪詢請求。
  26. 根據申請專利範圍第25項所述的伺服器,其中,所述執行模組還用於:在所述等待設定時長後重新向所述服務提供方發送所述輪詢請求之前,判斷是否達到設定的輪詢次數閾值;若否,則執行所述等待設定時長後重新向所述服務提供方發送所述輪詢請求的步驟。
TW106102680A 2016-02-04 2017-01-24 異步服務處理方法及其伺服器 TWI753876B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610080674.6A CN107040563B (zh) 2016-02-04 2016-02-04 异步服务处理方法及服务器
CN201610080674.6 2016-02-04

Publications (2)

Publication Number Publication Date
TW201732654A true TW201732654A (zh) 2017-09-16
TWI753876B TWI753876B (zh) 2022-02-01

Family

ID=59500983

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106102680A TWI753876B (zh) 2016-02-04 2017-01-24 異步服務處理方法及其伺服器

Country Status (3)

Country Link
CN (1) CN107040563B (zh)
TW (1) TWI753876B (zh)
WO (1) WO2017133531A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729165A (zh) * 2017-10-12 2018-02-23 郑州云海信息技术有限公司 一种信息获取方法、装置及系统
CN110827108B (zh) * 2018-08-13 2023-05-26 阿里巴巴集团控股有限公司 信息搜索方法、搜索请求控制方法及系统
CN109711741A (zh) * 2018-12-29 2019-05-03 上海二三四五金融科技有限公司 一种获取设备风控数据的控制方法及控制装置
CN109889593B (zh) * 2019-02-27 2021-11-12 中国人民解放军海军工程大学 一种移动机动保障方舱的分布式主从机通讯方法及装置
CN111711826B (zh) * 2019-03-18 2023-11-03 北京奇虎科技有限公司 视频直播服务系统及方法
CN112085490A (zh) * 2019-06-13 2020-12-15 百度在线网络技术(北京)有限公司 异步计费方法、装置、设备及计算机可读存储介质
CN110543381B (zh) * 2019-08-21 2022-02-22 语联网(武汉)信息技术有限公司 机器翻译引擎服务恢复方法及装置
CN113065054B (zh) * 2021-03-31 2024-03-01 北京达佳互联信息技术有限公司 请求处理方法、装置、电子设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1183841A (zh) * 1995-02-13 1998-06-03 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US7987491B2 (en) * 2002-05-10 2011-07-26 Richard Reisman Method and apparatus for browsing using alternative linkbases
US7984330B2 (en) * 2009-02-27 2011-07-19 Yahoo! Inc. Smart recovery of asynchronous processing
CN103220206B (zh) * 2012-01-19 2017-04-19 阿里巴巴集团控股有限公司 一种消息发送方法、装置和一种消息接收方法、装置
CN102710665A (zh) * 2012-06-27 2012-10-03 深圳中兴网信科技有限公司 移动终端、服务器和移动终端的数据同步方法
CN103885988B (zh) * 2012-12-21 2017-11-03 中国移动通信集团公司 输出内容的方法及装置、内容输出系统
CN104753966A (zh) * 2013-12-25 2015-07-01 明博教育科技有限公司 一种基于服务器和客户端缓存的资源文件查询方法及系统
CN104852991A (zh) * 2015-06-01 2015-08-19 上海雷腾软件股份有限公司 分布式推送服务器系统及应用该系统的数据推送方法

Also Published As

Publication number Publication date
TWI753876B (zh) 2022-02-01
CN107040563A (zh) 2017-08-11
WO2017133531A1 (zh) 2017-08-10
CN107040563B (zh) 2021-01-19

Similar Documents

Publication Publication Date Title
TWI753876B (zh) 異步服務處理方法及其伺服器
US11277464B2 (en) Data restoration for datacenter failover
CN102299954B (zh) 用于分布式服务的上下文专用网络资源寻址系统及方法
US10511480B2 (en) Message flow management for virtual networks
US9722890B2 (en) Integrated incident management for hybrid landscapes
US11741075B2 (en) Methods and system of tracking transactions for distributed ledger
JP2019502186A (ja) グローバル情報を取得、処理および更新するためのシステムおよび方法
TW201724825A (zh) 全域資訊獲取、處理及更新、方法、裝置和系統
JP6700308B2 (ja) データ・コピー方法及びデバイス
CN110166562B (zh) 数据同步的方法、装置、存储介质和电子设备
US9503401B1 (en) Automated message recall from a sender's device
JP6434021B2 (ja) データフィードの管理
KR20170068533A (ko) 가상 카드 처리 방법 및 장치
KR20200066184A (ko) 디바이스 관리 서버 및 방법
WO2022062661A1 (zh) 操作通知方法和装置、存储介质和电子装置
CN106557522B (zh) 一种用于提供定时功能的方法与设备
CN110119314A (zh) 一种服务器调用方法、装置、服务器及存储介质
WO2016095699A1 (zh) 一种标签交换路径状态的获取方法及装置
WO2024051739A1 (zh) 通信方法、设备和存储介质
US10812434B2 (en) Apparatus and method for maintaining message databases in eventual consistency distributed database systems
CN109389271B (zh) 应用性能管理方法及系统
US20090106781A1 (en) Remote call handling methods and systems
CN117043760A (zh) 针对边缘网络存储中的在线会议的媒体存储
JP4862346B2 (ja) ダウンロードシステム及びプログラム
US20160056994A1 (en) Diagnosing Network Misconfiguration Externally