接口服務(wù)異常時(shí)的處理方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,特別是涉及接口服務(wù)異常時(shí)的處理方法和裝置。
【背景技術(shù)】
[0002]目前,業(yè)界對(duì)接口服務(wù)在異常情況下的常規(guī)處理方法是,直接返回默認(rèn)的一個(gè)返回結(jié)果,或者,拒絕返回任何結(jié)果。
[0003]顯然,即使現(xiàn)有的處理方法提供了一個(gè)返回結(jié)果,但是,對(duì)于接口服務(wù)調(diào)用方而言,該返回結(jié)果并不是一個(gè)有效的返回結(jié)果。因此,現(xiàn)有的處理方法并不能滿足接口服務(wù)調(diào)用方的需求,這在一定程度上影響了服務(wù)器對(duì)外提供接口服務(wù)的穩(wěn)定性。
[0004]因此,目前迫切需要解決的問題是:提供一種接口服務(wù)異常時(shí)的處理方案。
【發(fā)明內(nèi)容】
[0005]為了解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種接口服務(wù)異常時(shí)的處理方法和裝置,以便于在異常情況下也能為接口服務(wù)調(diào)用方提供一個(gè)有效的返回結(jié)果,滿足接口服務(wù)調(diào)用方的需求,從而提高服務(wù)器對(duì)外提供接口服務(wù)的穩(wěn)定性。
[0006]本發(fā)明實(shí)施例公開了如下技術(shù)方案:
[0007]在本發(fā)明實(shí)施方式的第一方面中,提供了一種接口服務(wù)異常時(shí)的處理方法,在緩存池中存儲(chǔ)有服務(wù)正常的接口的屬性信息和返回結(jié)果,且所述屬性信息和返回結(jié)果具有映射關(guān)系,所述屬性信息包含接口標(biāo)志和調(diào)用參數(shù);所述方法包括:
[0008]判斷所述緩存池中是否包含與服務(wù)異常的接口的屬性信息相同的屬性信息;
[0009]如果是,從所述緩存池中提取出與服務(wù)異常的接口的屬性信息相映射的返回結(jié)果;
[0010]將提取出的返回結(jié)果返回給客戶端。
[0011]結(jié)合本發(fā)明實(shí)施方式的第一方面,本發(fā)明實(shí)施方式還具有第一種可能,即在所述緩存池中還存儲(chǔ)有服務(wù)正常的接口的返回結(jié)果的生成時(shí)間,且所述生成時(shí)間與所述屬性信息和返回結(jié)果具有映射關(guān)系;
[0012]所述方法還包括:
[0013]判斷當(dāng)前時(shí)間與所述生成時(shí)間的差值是否大于或等于預(yù)設(shè)的生命周期;
[0014]如果是,從所述緩存池中刪除所述生成時(shí)間以及與所述生成時(shí)間相映射的屬性信息和返回結(jié)果。
[0015]結(jié)合本發(fā)明實(shí)施方式的第一方面,本發(fā)明實(shí)施方式還具有第二種可能,即當(dāng)并發(fā)存在至少兩個(gè)服務(wù)異常的接口,且所述至少兩個(gè)服務(wù)異常的接口的屬性信息相同時(shí),所述將提取出的返回結(jié)果返回給客戶端具體為:
[0016]將不同的返回結(jié)果返回給不同的客戶端。
[0017]結(jié)合本發(fā)明實(shí)施方式的第一方面的第二種可能,本發(fā)明實(shí)施方式還具有第三種可能,即在所述緩存池中還存儲(chǔ)有服務(wù)正常的接口的返回結(jié)果的使用次數(shù);
[0018]將不同的返回結(jié)果返回給不同的客戶端具體為:
[0019]針對(duì)每一個(gè)客戶端,將提取出的返回結(jié)果中使用次數(shù)最小的返回結(jié)果返回給所述客戶端。
[0020]結(jié)合本發(fā)明實(shí)施方式的第一方面、第一方面的第一種可能、第一方面的第二種可能或第一方面的第三種可能,本發(fā)明實(shí)施方式還具有第四種可能,即所述緩存池為基于條件數(shù)據(jù)庫的數(shù)據(jù)表、內(nèi)存或緩存中的鍵-值隊(duì)列或各類開源的持久化數(shù)據(jù)框架中的數(shù)據(jù)存儲(chǔ)系統(tǒng)。
[0021]在本發(fā)明實(shí)施方式的第二方面中,提供了一種接口服務(wù)異常時(shí)的處理裝置,包括:
[0022]緩存池,用于存儲(chǔ)服務(wù)正常的接口的屬性信息和返回結(jié)果,且所述屬性信息和返回結(jié)果具有映射關(guān)系,所述屬性信息包含接口標(biāo)志和調(diào)用參數(shù);
[0023]第一判斷單元,用于判斷所述緩存池中是否包含與服務(wù)異常的接口的屬性信息相同的屬性信息;
[0024]調(diào)用單元,用于如果第一判斷單元的判斷結(jié)果為是,從所述緩存池中提取出與服務(wù)異常的接口的屬性信息相映射的返回結(jié)果;
[0025]返回單元,用于將提取出的返回結(jié)果返回給客戶端。
[0026]結(jié)合本發(fā)明實(shí)施方式的第二方面,本發(fā)明實(shí)施方式還具有第一種可能,即所述緩存池還用于,存儲(chǔ)服務(wù)正常的接口的返回結(jié)果的生成時(shí)間,且所述生成時(shí)間與所述屬性信息和返回結(jié)果具有映射關(guān)系;
[0027]所述裝置還包括:
[0028]第二判斷單元,用于判斷當(dāng)前時(shí)間與所述生成時(shí)間的差值是否大于或等于預(yù)設(shè)的生命周期;
[0029]刪除單元,用于當(dāng)所述第二判斷單元的判斷結(jié)果為是時(shí),從所述緩存池中刪除所述生成時(shí)間以及與所述生成時(shí)間相映射的屬性信息和返回結(jié)果。
[0030]結(jié)合本發(fā)明實(shí)施方式的第二方面,本發(fā)明實(shí)施方式還具有第二種可能,即當(dāng)并發(fā)存在至少兩個(gè)服務(wù)異常的接口,且所述至少兩個(gè)服務(wù)異常的接口的屬性信息相同時(shí),所述返回單元具體用于,將不同的返回結(jié)果返回給不同的客戶端。
[0031]結(jié)合本發(fā)明實(shí)施方式的第二方面的第二種可能,本發(fā)明實(shí)施方式還具有第三種可能,即所述緩存池還用于,存儲(chǔ)服務(wù)正常的接口的返回結(jié)果的使用次數(shù);
[0032]則所述返回單元具體用于,針對(duì)每一個(gè)客戶端,將提取出的返回結(jié)果中使用次數(shù)最小的返回結(jié)果返回給所述客戶端。
[0033]結(jié)合本發(fā)明實(shí)施方式的第二方面、本發(fā)明實(shí)施方式的第二方面的第一種可能、本發(fā)明實(shí)施方式的第二方面的第二種可能或本發(fā)明實(shí)施方式的第二方面的第三種可能,即所述緩存池為基于條件數(shù)據(jù)庫的數(shù)據(jù)表、內(nèi)存或緩存中的鍵-值隊(duì)列或各類開源的持久化數(shù)據(jù)框架中的數(shù)據(jù)存儲(chǔ)系統(tǒng)。
[0034]由上述實(shí)施例可以看出,與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
[0035]針對(duì)服務(wù)正常的每個(gè)接口,將這些接口的返回結(jié)果存儲(chǔ)到緩存池中。一旦出現(xiàn)了服務(wù)異常的接口,先確定該服務(wù)異常的接口的屬性信息是否與某一個(gè)服務(wù)正常的接口的屬性信息相同,如果相同,就可以從緩存池中將這個(gè)服務(wù)正常的接口的返回結(jié)果提取出來,并作為該服務(wù)異常的接口的返回結(jié)果返回給客戶端。因此,在異常情況下也能為接口服務(wù)調(diào)用方提供一個(gè)有效的返回結(jié)果,滿足接口服務(wù)調(diào)用方的需求,從而提高服務(wù)器對(duì)外提供接口服務(wù)的穩(wěn)定性。
【附圖說明】
[0036]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0037]圖1為本發(fā)明的實(shí)施方式可以在其中實(shí)施的示例性應(yīng)用場(chǎng)景;
[0038]圖2為本發(fā)明實(shí)施例一提供的一種接口服務(wù)異常時(shí)的處理方法的流程圖;
[0039]圖3為本發(fā)明中服務(wù)器向緩存池中存儲(chǔ)數(shù)據(jù)的一種操作示意圖;
[0040]圖4為本發(fā)明中服務(wù)區(qū)向緩存池中存儲(chǔ)數(shù)據(jù)的另一種操作示意圖;
[0041]圖5為本發(fā)明實(shí)施例二提供的一種接口服務(wù)異常時(shí)的處理方法的流程圖;
[0042]圖6為本發(fā)明實(shí)施例三提供的一種接口服務(wù)異常時(shí)的處理裝置的結(jié)構(gòu)圖;
[0043]圖7為本發(fā)明實(shí)施例三提供的另一種接口服務(wù)異常時(shí)的處理裝置的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0044]本發(fā)明實(shí)施例提供了接口服務(wù)異常時(shí)的處理方法和裝置。本發(fā)明所涉及的技術(shù)方案的核心在于,每當(dāng)接口服務(wù)正常時(shí),就將服務(wù)正常的接口的屬性信息(該屬性信息包含接口標(biāo)志和調(diào)用該接口時(shí)所使用的調(diào)用參數(shù))和返回結(jié)果存儲(chǔ)到緩存池中。顯然,位于該緩存池中的返回結(jié)果全部是接口服務(wù)正常時(shí)所得到的有效的返回結(jié)果,并且,緩存池中的數(shù)據(jù)是實(shí)時(shí)在更新的。一旦某一個(gè)接口服務(wù)出現(xiàn)異常,導(dǎo)致該接口調(diào)用失敗,如果該接口的屬性信息與緩存池中已存儲(chǔ)的某一個(gè)服務(wù)正常接口的屬性信息相同,就可從緩存池中提取出該服務(wù)正常接口的返回結(jié)果,并作為該服務(wù)異常接口的返回結(jié)果返回給客戶端。
[0045]首先參考圖1,圖1示意性地示出了本發(fā)明的實(shí)施方式可以在其中實(shí)施的示例性應(yīng)用場(chǎng)景。其中,客戶端00向服務(wù)器20發(fā)送一個(gè)調(diào)用接口 A的接口服務(wù)請(qǐng)求11 (該接口服務(wù)請(qǐng)求11中包含有接口 A的接口標(biāo)志31和調(diào)用接口 A時(shí)所使用的調(diào)用參數(shù)32)。作為響應(yīng),服務(wù)器20利用調(diào)用參數(shù)32調(diào)用接口標(biāo)志31所標(biāo)識(shí)的接口 A,如果服務(wù)器20成功調(diào)用接口 A (即,接口 A服務(wù)