本發(fā)明屬于計(jì)算機(jī)應(yīng)用領(lǐng)域,尤其涉及一種響應(yīng)請(qǐng)求端請(qǐng)求的方法及系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)時(shí)代的發(fā)展,用戶數(shù)的增加,用戶對(duì)所使用系統(tǒng)的要求也越來(lái)越高,各種網(wǎng)絡(luò)應(yīng)用層出不窮,各種應(yīng)用之間存在的交互越來(lái)越多,電信等大型應(yīng)用,內(nèi)部也分層部署,從網(wǎng)絡(luò)層到能力開放層到服務(wù)中心層到數(shù)據(jù)層,各應(yīng)用之間或各層之間通過(guò)實(shí)時(shí)服務(wù)調(diào)用完成對(duì)各種請(qǐng)求的響應(yīng)。由于各種原因可能使服務(wù)端對(duì)于請(qǐng)求端的請(qǐng)求響應(yīng)超時(shí),此時(shí)請(qǐng)求端認(rèn)為服務(wù)端響應(yīng)失敗了就采取了其他處理,但實(shí)際服務(wù)端響應(yīng)成功了只是用時(shí)較長(zhǎng),此種情況會(huì)導(dǎo)致請(qǐng)求端與服務(wù)端的數(shù)據(jù)不一致,服務(wù)端響應(yīng)周期長(zhǎng),不能及時(shí)響應(yīng)請(qǐng)求端,用戶體驗(yàn)度差,由于后續(xù)還需進(jìn)行差異處理造成成本較高。上述問(wèn)題對(duì)于實(shí)時(shí)交易過(guò)程而言將更加嚴(yán)重。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是針對(duì)現(xiàn)有技術(shù)的不足,提供一種響應(yīng)請(qǐng)求端請(qǐng)求的方法及系統(tǒng)。
本發(fā)明解決上述技術(shù)問(wèn)題的技術(shù)方案如下:一種響應(yīng)請(qǐng)求端請(qǐng)求的方法,包括如下步驟:
s1,根據(jù)業(yè)務(wù)特性在響應(yīng)程序中設(shè)置超時(shí)點(diǎn)和與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn);
s2,接收請(qǐng)求端發(fā)送的請(qǐng)求和預(yù)設(shè)時(shí)長(zhǎng);
s3,響應(yīng)所述請(qǐng)求,分別捕獲超時(shí)點(diǎn)當(dāng)前時(shí)間及與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)當(dāng)前時(shí)間,計(jì)算超時(shí)點(diǎn)當(dāng)前時(shí)間和入口點(diǎn)當(dāng)前時(shí)間的差值,并將該差值作為當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí),其中,所述超時(shí)點(diǎn)為當(dāng)前所執(zhí)行程序出口點(diǎn),所述與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)為當(dāng)前所執(zhí)行程序入口點(diǎn);
s4,在超時(shí)點(diǎn)計(jì)算預(yù)設(shè)時(shí)長(zhǎng)與當(dāng)前累加執(zhí)行程序的總程序執(zhí)行耗時(shí)之差,作為當(dāng)前剩余時(shí)長(zhǎng);
s5,判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于零,是,則繼續(xù)響應(yīng),直到得到與所述請(qǐng)求對(duì)應(yīng)的響應(yīng)結(jié)果,并將響應(yīng)結(jié)果發(fā)送給請(qǐng)求端,否,則執(zhí)行失敗指令。
本發(fā)明的有益效果是:通過(guò)設(shè)置超時(shí)點(diǎn)和入口點(diǎn),根據(jù)捕獲超時(shí)點(diǎn)當(dāng)前時(shí)間和入口點(diǎn)當(dāng)前時(shí)間計(jì)算差值,將該差值作為當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí),在超時(shí)點(diǎn)計(jì)算預(yù)設(shè)時(shí)長(zhǎng)與當(dāng)前累加執(zhí)行程序的總程序執(zhí)行耗時(shí)之差,作為當(dāng)前剩余時(shí)長(zhǎng),判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于零,是,則繼續(xù)響應(yīng),否,則執(zhí)行失敗指令,在當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí)過(guò)長(zhǎng)時(shí)則結(jié)束對(duì)請(qǐng)求的響應(yīng),實(shí)現(xiàn)減少響應(yīng)周期,及時(shí)響應(yīng)請(qǐng)求端,使請(qǐng)求端與服務(wù)端的數(shù)據(jù)保持一致,提高用戶體驗(yàn)度,減少成本。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn):
進(jìn)一步,所述s1步驟還包括設(shè)置每個(gè)從與超時(shí)點(diǎn)對(duì)應(yīng)的所述入口點(diǎn)到所述超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng);所述s5步驟包括:
s51,判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于零,是,則執(zhí)行s52,否,則執(zhí)行s54;
s52,判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于從與下一超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)到下一超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng),是,則執(zhí)行s53,否,則執(zhí)行s54;
s53,繼續(xù)響應(yīng),直到得到與所述請(qǐng)求對(duì)應(yīng)的響應(yīng)結(jié)果,并將響應(yīng)結(jié)果發(fā)送給請(qǐng)求端;
s54,執(zhí)行失敗指令。
進(jìn)一步,所述預(yù)設(shè)時(shí)長(zhǎng)大于或等于所有從與超時(shí)點(diǎn)對(duì)應(yīng)的所述入口點(diǎn)到所述超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng)的總和。
進(jìn)一步,所述捕獲超時(shí)點(diǎn)當(dāng)前時(shí)間及與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)當(dāng)前時(shí)間所采用的時(shí)鐘為同一個(gè)。
進(jìn)一步,所述執(zhí)行失敗指令包括回滾操作或發(fā)送響應(yīng)失敗指令到請(qǐng)求端,并終止響應(yīng)所述請(qǐng)求。
本發(fā)明解決上述技術(shù)問(wèn)題的技術(shù)方案如下:一種響應(yīng)請(qǐng)求端請(qǐng)求的系統(tǒng),包括:
設(shè)置模塊,用于根據(jù)業(yè)務(wù)特性在響應(yīng)程序中設(shè)置超時(shí)點(diǎn)和與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn);
接收模塊,用于接收請(qǐng)求端發(fā)送的請(qǐng)求和預(yù)設(shè)時(shí)長(zhǎng);
響應(yīng)模塊,用于響應(yīng)所述請(qǐng)求,分別捕獲超時(shí)點(diǎn)當(dāng)前時(shí)間及與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)當(dāng)前時(shí)間,計(jì)算超時(shí)點(diǎn)當(dāng)前時(shí)間和入口點(diǎn)當(dāng)前時(shí)間的差值,并將該差值作為當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí),其中,所述超時(shí)點(diǎn)為當(dāng)前所執(zhí)行程序出口點(diǎn),所述與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)為當(dāng)前所執(zhí)行程序入口點(diǎn);
計(jì)算模塊,用于在超時(shí)點(diǎn)計(jì)算預(yù)設(shè)時(shí)長(zhǎng)與當(dāng)前累加執(zhí)行程序的總程序執(zhí)行耗時(shí)之差,作為當(dāng)前剩余時(shí)長(zhǎng);
判斷模塊,用于判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于零,是,則繼續(xù)響應(yīng),直到得到與所述請(qǐng)求對(duì)應(yīng)的響應(yīng)結(jié)果,并將響應(yīng)結(jié)果發(fā)送給請(qǐng)求端,否,則執(zhí)行失敗指令。
本發(fā)明的有益效果是:通過(guò)設(shè)置超時(shí)點(diǎn)和入口點(diǎn),根據(jù)捕獲超時(shí)點(diǎn)當(dāng)前時(shí)間和入口點(diǎn)當(dāng)前時(shí)間計(jì)算差值,將該差值作為當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí),在超時(shí)點(diǎn)計(jì)算預(yù)設(shè)時(shí)長(zhǎng)與當(dāng)前累加執(zhí)行程序的總程序執(zhí)行耗時(shí)之差,作為當(dāng)前剩余時(shí)長(zhǎng),判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于零,是,則繼續(xù)響應(yīng),否,則執(zhí)行失敗指令,在當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí)過(guò)長(zhǎng)時(shí)則結(jié)束對(duì)請(qǐng)求的響應(yīng),實(shí)現(xiàn)減少響應(yīng)周期,及時(shí)響應(yīng)請(qǐng)求端,使請(qǐng)求端與服務(wù)端的數(shù)據(jù)保持一致,提高用戶體驗(yàn)度,減少成本。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn):
進(jìn)一步,所述設(shè)置模塊還用于設(shè)置每個(gè)從與超時(shí)點(diǎn)對(duì)應(yīng)的所述入口點(diǎn)到所述超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng);所述判斷模塊包括:
首判斷模塊,用于判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于零,是,則調(diào)用再判斷模塊,否,則調(diào)用終止模塊;
再判斷模塊,用于判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于從與下一超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)到下一超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng),是,則調(diào)用繼續(xù)響應(yīng)模塊,否,則調(diào)用終止模塊;
繼續(xù)響應(yīng)模塊,用于繼續(xù)響應(yīng),直到得到與所述請(qǐng)求對(duì)應(yīng)的響應(yīng)結(jié)果,并將響應(yīng)結(jié)果發(fā)送給請(qǐng)求端;
終止模塊,用于執(zhí)行失敗指令。
進(jìn)一步,所述預(yù)設(shè)時(shí)長(zhǎng)大于或等于所有從與超時(shí)點(diǎn)對(duì)應(yīng)的所述入口點(diǎn)到所述超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng)的總和。
進(jìn)一步,所述捕獲超時(shí)點(diǎn)當(dāng)前時(shí)間及與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)當(dāng)前時(shí)間所采用的時(shí)鐘為同一個(gè)。
進(jìn)一步,所述執(zhí)行失敗指令包括回滾操作或發(fā)送響應(yīng)失敗指令到請(qǐng)求端,并終止響應(yīng)所述請(qǐng)求。
附圖說(shuō)明
圖1為本發(fā)明一實(shí)施例提供的響應(yīng)請(qǐng)求端請(qǐng)求的方法的流程示意圖;
圖2為本發(fā)明另一實(shí)施例提供的響應(yīng)請(qǐng)求端請(qǐng)求的方法中步驟五的流程示意圖;
圖3為本發(fā)明一實(shí)施例提供的響應(yīng)請(qǐng)求端請(qǐng)求的系統(tǒng)的結(jié)構(gòu)示意圖;
圖4為本發(fā)明另一實(shí)施例提供的響應(yīng)請(qǐng)求端請(qǐng)求的系統(tǒng)中判斷模塊的結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
如圖1所示,本發(fā)明實(shí)施例提供的響應(yīng)請(qǐng)求端請(qǐng)求的方法,包括如下步驟:
s1,根據(jù)業(yè)務(wù)特性在響應(yīng)程序中設(shè)置超時(shí)點(diǎn)和與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn);
s2,接收請(qǐng)求端發(fā)送的請(qǐng)求和預(yù)設(shè)時(shí)長(zhǎng);
s3,響應(yīng)所述請(qǐng)求,分別捕獲超時(shí)點(diǎn)當(dāng)前時(shí)間及與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)當(dāng)前時(shí)間,計(jì)算超時(shí)點(diǎn)當(dāng)前時(shí)間和入口點(diǎn)當(dāng)前時(shí)間的差值,并將該差值作為當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí),其中,所述超時(shí)點(diǎn)為當(dāng)前所執(zhí)行程序出口點(diǎn),所述與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)為當(dāng)前所執(zhí)行程序入口點(diǎn);
s4,在超時(shí)點(diǎn)計(jì)算預(yù)設(shè)時(shí)長(zhǎng)與當(dāng)前累加執(zhí)行程序的總程序執(zhí)行耗時(shí)之差,作為當(dāng)前剩余時(shí)長(zhǎng);
s5,判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于零,是,則繼續(xù)響應(yīng),直到得到與所述請(qǐng)求對(duì)應(yīng)的響應(yīng)結(jié)果,并將響應(yīng)結(jié)果發(fā)送給請(qǐng)求端,否,則執(zhí)行失敗指令。
該實(shí)施例中,s1步驟中根據(jù)業(yè)務(wù)特性,在響應(yīng)程序中的跨服務(wù)調(diào)用時(shí)、跨網(wǎng)絡(luò)調(diào)用時(shí)、涉及數(shù)據(jù)庫(kù)操作時(shí)、耗時(shí)較長(zhǎng)處時(shí)、內(nèi)部處理邏輯復(fù)雜可能耗時(shí)較長(zhǎng)時(shí)和/或根據(jù)實(shí)際運(yùn)營(yíng)發(fā)現(xiàn)的問(wèn)題時(shí),設(shè)置超時(shí)點(diǎn)和與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)。耗時(shí)較長(zhǎng)的原因可能是處理過(guò)程受數(shù)據(jù)量、網(wǎng)絡(luò)或主機(jī)等性能影響不能及時(shí)響應(yīng)請(qǐng)求。
優(yōu)選地,當(dāng)在跨服務(wù)調(diào)用時(shí)設(shè)置超時(shí)點(diǎn)和與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn),則超時(shí)點(diǎn)設(shè)置在調(diào)用側(cè)且是在準(zhǔn)備調(diào)用前。如此設(shè)置是由于被調(diào)用側(cè)還有被調(diào)用程序,執(zhí)行該被調(diào)用程序還需要消耗時(shí)間,而當(dāng)執(zhí)行從與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)到超時(shí)點(diǎn)之間的待執(zhí)行程序時(shí)已經(jīng)消耗了過(guò)長(zhǎng)時(shí)間的情況下,在執(zhí)行該被調(diào)用程序后才執(zhí)行失敗指令,則使得執(zhí)行失敗指令發(fā)生了延遲,服務(wù)端在消耗了過(guò)長(zhǎng)時(shí)間時(shí)沒(méi)有及時(shí)通知客戶端并終止對(duì)請(qǐng)求的響應(yīng),降低客戶的體驗(yàn)度。
下面以具體地例子說(shuō)明本發(fā)明實(shí)施例:
例1:根據(jù)業(yè)務(wù)特性在響應(yīng)程序中依次設(shè)置與一個(gè)超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)和一個(gè)超時(shí)點(diǎn);接收請(qǐng)求端發(fā)送的請(qǐng)求和預(yù)設(shè)時(shí)長(zhǎng);響應(yīng)所述請(qǐng)求,分別捕獲一個(gè)超時(shí)點(diǎn)當(dāng)前時(shí)間及與一個(gè)超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)當(dāng)前時(shí)間,計(jì)算超時(shí)點(diǎn)當(dāng)前時(shí)間和入口點(diǎn)當(dāng)前時(shí)間的差值,并將該差值作為當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí),其中,所述一個(gè)超時(shí)點(diǎn)為當(dāng)前所執(zhí)行程序出口點(diǎn),所述與一個(gè)超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)為當(dāng)前所執(zhí)行程序入口點(diǎn);在一個(gè)超時(shí)點(diǎn)計(jì)算預(yù)設(shè)時(shí)長(zhǎng)與當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí)之差,作為當(dāng)前剩余時(shí)長(zhǎng);判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于零,是,則繼續(xù)響應(yīng)請(qǐng)求,得到與請(qǐng)求對(duì)應(yīng)的響應(yīng)結(jié)果,并將響應(yīng)結(jié)果發(fā)送給請(qǐng)求端,否,則執(zhí)行失敗指令。只設(shè)置一個(gè)超時(shí)點(diǎn)和與一個(gè)超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)時(shí),本發(fā)明實(shí)施例提供的響應(yīng)請(qǐng)求端請(qǐng)求的方法,對(duì)于實(shí)現(xiàn)快速響應(yīng)的效果不是很明顯。
例子2:根據(jù)業(yè)務(wù)特性在響應(yīng)程序中依次設(shè)置與超時(shí)點(diǎn)一對(duì)應(yīng)的入口點(diǎn)一,超時(shí)點(diǎn)一,與超時(shí)點(diǎn)二對(duì)應(yīng)的入口點(diǎn)二,超時(shí)點(diǎn)二;接收請(qǐng)求端發(fā)送請(qǐng)求和預(yù)設(shè)時(shí)長(zhǎng);響應(yīng)所述請(qǐng)求,分別捕獲超時(shí)點(diǎn)一當(dāng)前時(shí)間和入口點(diǎn)一當(dāng)前時(shí)間,計(jì)算超時(shí)點(diǎn)一當(dāng)前時(shí)間和入口點(diǎn)一當(dāng)前時(shí)間的差值,并將該差值作為當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí)一,其中,所述超時(shí)點(diǎn)一為當(dāng)前所執(zhí)行程序出口點(diǎn),入口點(diǎn)一為當(dāng)前所執(zhí)行程序入口點(diǎn);在超時(shí)點(diǎn)一計(jì)算預(yù)設(shè)時(shí)長(zhǎng)與當(dāng)前執(zhí)行程序的程序執(zhí)行耗時(shí)一之差,作為當(dāng)前剩余時(shí)長(zhǎng)一;判斷當(dāng)前剩余時(shí)長(zhǎng)一是否大于零,否,則執(zhí)行失敗指令,是,則繼續(xù)響應(yīng)所述請(qǐng)求;分別捕獲超時(shí)點(diǎn)二當(dāng)前時(shí)間和入口點(diǎn)二當(dāng)前時(shí)間,計(jì)算超時(shí)點(diǎn)二當(dāng)前時(shí)間和入口點(diǎn)二當(dāng)前時(shí)間的差值,并將該差值作為當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí)二,其中,所述超時(shí)點(diǎn)二為當(dāng)前所執(zhí)行程序出口點(diǎn),入口點(diǎn)二為當(dāng)前所執(zhí)行程序入口點(diǎn);在超時(shí)點(diǎn)二計(jì)算預(yù)設(shè)時(shí)長(zhǎng)與當(dāng)前累加執(zhí)行程序的總程序執(zhí)行耗時(shí)之差,該總程序執(zhí)行耗時(shí)為程序執(zhí)行耗時(shí)一與程序執(zhí)行耗時(shí)二相加之和,作為當(dāng)前剩余時(shí)長(zhǎng)二;判斷當(dāng)前剩余時(shí)長(zhǎng)二是否大于零,是,則繼續(xù)響應(yīng)請(qǐng)求,得到與請(qǐng)求對(duì)應(yīng)的響應(yīng)結(jié)果,并將響應(yīng)結(jié)果發(fā)送給請(qǐng)求端,否,則執(zhí)行失敗指令。
本發(fā)明實(shí)施例提供的響應(yīng)請(qǐng)求端請(qǐng)求的方法,通過(guò)設(shè)置超時(shí)點(diǎn)和入口點(diǎn),根據(jù)捕獲超時(shí)點(diǎn)當(dāng)前時(shí)間和入口點(diǎn)當(dāng)前時(shí)間計(jì)算差值,將該差值作為當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí),在超時(shí)點(diǎn)計(jì)算預(yù)設(shè)時(shí)長(zhǎng)與當(dāng)前累加執(zhí)行程序的總程序執(zhí)行耗時(shí)之差,作為當(dāng)前剩余時(shí)長(zhǎng),判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于零,是,則繼續(xù)響應(yīng),否,則執(zhí)行失敗指令,在當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí)過(guò)長(zhǎng)時(shí)則結(jié)束對(duì)請(qǐng)求的響應(yīng),實(shí)現(xiàn)減少響應(yīng)周期,及時(shí)響應(yīng)請(qǐng)求端,使請(qǐng)求端與服務(wù)端的數(shù)據(jù)保持一致,提高用戶體驗(yàn)度,減少成本。
如圖2所示,本發(fā)明實(shí)施例提供的響應(yīng)請(qǐng)求端請(qǐng)求的方法,在上述實(shí)施例的基礎(chǔ)上,所述s1步驟還包括設(shè)置每個(gè)從與超時(shí)點(diǎn)對(duì)應(yīng)的所述入口點(diǎn)到所述超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng);所述s5步驟包括:
s51,判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于零,是,則執(zhí)行s52,否,則執(zhí)行s54;
s52,判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于從與下一超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)到下一超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng),是,則執(zhí)行s53,否,則執(zhí)行s54;
s53,繼續(xù)響應(yīng),直到得到與所述請(qǐng)求對(duì)應(yīng)的響應(yīng)結(jié)果,并將響應(yīng)結(jié)果發(fā)送給請(qǐng)求端;
s54,執(zhí)行失敗指令。
該實(shí)施例中,從與一個(gè)超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)到一個(gè)超時(shí)點(diǎn)之間的一個(gè)待執(zhí)行程序,從與下一超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)到下一超時(shí)點(diǎn)之間的下一待執(zhí)行程序,該一個(gè)待執(zhí)行程序與該下一待執(zhí)行程序所執(zhí)行的程序內(nèi)容不同,因而所設(shè)置的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng)也不相同。
當(dāng)在響應(yīng)程序中只設(shè)置一個(gè)超時(shí)點(diǎn)和與一個(gè)超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)時(shí),再設(shè)置待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng),是無(wú)法提高響應(yīng)請(qǐng)求端請(qǐng)求的響應(yīng)速度,因而該實(shí)施例適用于在響應(yīng)程序中設(shè)置至少兩個(gè)超時(shí)點(diǎn)和與至少兩個(gè)超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)。
下面以上文中的例2為基礎(chǔ)說(shuō)明本發(fā)明實(shí)施例:
例3:根據(jù)業(yè)務(wù)特性在響應(yīng)程序中依次設(shè)置與超時(shí)點(diǎn)一對(duì)應(yīng)的入口點(diǎn)一,超時(shí)點(diǎn)一,與超時(shí)點(diǎn)二對(duì)應(yīng)的入口點(diǎn)二,超時(shí)點(diǎn)二,設(shè)置從入口點(diǎn)一到超時(shí)點(diǎn)一之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng)一,設(shè)置從入口點(diǎn)二到超時(shí)點(diǎn)二之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng)二;接收請(qǐng)求端發(fā)送請(qǐng)求和預(yù)設(shè)時(shí)長(zhǎng);響應(yīng)所述請(qǐng)求,分別捕獲超時(shí)點(diǎn)一當(dāng)前時(shí)間和入口點(diǎn)一當(dāng)前時(shí)間,計(jì)算超時(shí)點(diǎn)一當(dāng)前時(shí)間和入口點(diǎn)一當(dāng)前時(shí)間的差值,并將該差值作為當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí)一,其中,所述超時(shí)點(diǎn)一為當(dāng)前所執(zhí)行程序出口點(diǎn),入口點(diǎn)一為當(dāng)前所執(zhí)行程序入口點(diǎn);在超時(shí)點(diǎn)一計(jì)算預(yù)設(shè)時(shí)長(zhǎng)與當(dāng)前執(zhí)行程序的程序執(zhí)行耗時(shí)一之差,作為當(dāng)前剩余時(shí)長(zhǎng)一;判斷當(dāng)前剩余時(shí)長(zhǎng)一是否大于零,否,則執(zhí)行失敗指令,是,則判斷當(dāng)前剩余時(shí)長(zhǎng)一是否大于標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng)二;否,則執(zhí)行失敗指令,是,則分別捕獲超時(shí)點(diǎn)二當(dāng)前時(shí)間和入口點(diǎn)二當(dāng)前時(shí)間,計(jì)算超時(shí)點(diǎn)二當(dāng)前時(shí)間和入口點(diǎn)二當(dāng)前時(shí)間的差值,并將該差值作為當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí)二,其中,所述超時(shí)點(diǎn)二為當(dāng)前所執(zhí)行程序出口點(diǎn),入口點(diǎn)二為當(dāng)前所執(zhí)行程序入口點(diǎn);在超時(shí)點(diǎn)二計(jì)算預(yù)設(shè)時(shí)長(zhǎng)與當(dāng)前累加執(zhí)行程序的總程序執(zhí)行耗時(shí)之差,該總程序執(zhí)行耗時(shí)為程序執(zhí)行耗時(shí)一與程序執(zhí)行耗時(shí)二相加之和,作為當(dāng)前剩余時(shí)長(zhǎng)二;判斷當(dāng)前剩余時(shí)長(zhǎng)二是否大于零,是,則繼續(xù)響應(yīng)請(qǐng)求,得到與請(qǐng)求對(duì)應(yīng)的響應(yīng)結(jié)果,并將響應(yīng)結(jié)果發(fā)送給請(qǐng)求端,否,則執(zhí)行失敗指令。
例3中,預(yù)設(shè)時(shí)長(zhǎng)只有大于標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng)一時(shí)才可能完成對(duì)請(qǐng)求的響應(yīng),因而并不將預(yù)設(shè)時(shí)長(zhǎng)與標(biāo)準(zhǔn)時(shí)長(zhǎng)一進(jìn)行比較,只將剩余時(shí)長(zhǎng)一與標(biāo)準(zhǔn)時(shí)長(zhǎng)二進(jìn)行比較。
本發(fā)明實(shí)施例提供的響應(yīng)請(qǐng)求端請(qǐng)求的方法,通過(guò)判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于從與下一超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)到下一超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng),是,則繼續(xù)響應(yīng)請(qǐng)求,否,則執(zhí)行失敗指令。在當(dāng)前剩余時(shí)長(zhǎng)不足以執(zhí)行下一待執(zhí)行程序時(shí)結(jié)束對(duì)請(qǐng)求的響應(yīng),實(shí)現(xiàn)進(jìn)一步減少響應(yīng)周期,更快響應(yīng)請(qǐng)求端,使請(qǐng)求端與服務(wù)端的數(shù)據(jù)保持一致,提高用戶體驗(yàn)度,減少成本。
可選地,本發(fā)明實(shí)施例中,所述預(yù)設(shè)時(shí)長(zhǎng)大于或等于所有從與超時(shí)點(diǎn)對(duì)應(yīng)的所述入口點(diǎn)到所述超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng)的總和。
該實(shí)施例中,若將預(yù)設(shè)時(shí)長(zhǎng)小于所有從與超時(shí)點(diǎn)對(duì)應(yīng)的所述入口點(diǎn)到所述超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng)的總和時(shí),即使響應(yīng)程序過(guò)程不出現(xiàn)任何問(wèn)題地執(zhí)行也無(wú)法在預(yù)設(shè)時(shí)間得到與請(qǐng)求對(duì)應(yīng)的響應(yīng)結(jié)果,無(wú)法保證服務(wù)端的正常運(yùn)行,故而預(yù)設(shè)時(shí)長(zhǎng)要如此設(shè)置。
上述實(shí)施例中,通過(guò)預(yù)設(shè)時(shí)長(zhǎng)大于或等于所有從與超時(shí)點(diǎn)對(duì)應(yīng)的所述入口點(diǎn)到所述超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng)的總和,實(shí)現(xiàn)所有待執(zhí)行程序的實(shí)際執(zhí)行時(shí)間沒(méi)有過(guò)長(zhǎng)時(shí)能夠完成對(duì)請(qǐng)求的響應(yīng),提高用戶體驗(yàn)度。
可選地,本發(fā)明實(shí)施例中,所述捕獲超時(shí)點(diǎn)當(dāng)前時(shí)間及與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)當(dāng)前時(shí)間所采用的時(shí)鐘為同一個(gè)。
上述實(shí)施例中,捕獲超時(shí)點(diǎn)當(dāng)前時(shí)間及與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)當(dāng)前時(shí)間所采用的時(shí)鐘為同一個(gè),從而計(jì)算出差值,判斷出當(dāng)前剩余時(shí)長(zhǎng)是否大于零,實(shí)現(xiàn)減少響應(yīng)周期,及時(shí)響應(yīng)請(qǐng)求端,使請(qǐng)求端與服務(wù)端的數(shù)據(jù)保持一致,提高用戶體驗(yàn)度,減少成本。
可選地,本發(fā)明實(shí)施例中,所述執(zhí)行失敗指令包括回滾操作或發(fā)送響應(yīng)失敗指令到請(qǐng)求端,并終止響應(yīng)所述請(qǐng)求。
該實(shí)施例中,超時(shí)點(diǎn)和與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)均設(shè)置在數(shù)據(jù)庫(kù)內(nèi)時(shí),執(zhí)行失敗指令為回滾操作。由于數(shù)據(jù)庫(kù)封裝良好且機(jī)制比較健全,一般不會(huì)對(duì)數(shù)據(jù)庫(kù)做過(guò)多處理,因而超時(shí)點(diǎn)和與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)均設(shè)置在數(shù)據(jù)庫(kù)內(nèi)且響應(yīng)時(shí)間過(guò)長(zhǎng)時(shí)只進(jìn)行回滾操作即可。超時(shí)點(diǎn)和與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)不設(shè)置在數(shù)據(jù)庫(kù)內(nèi)時(shí),執(zhí)行失敗指令為發(fā)送響應(yīng)失敗指令到請(qǐng)求端。當(dāng)請(qǐng)求端接收到響應(yīng)失敗指令時(shí)根據(jù)接收的響應(yīng)失敗指令做相應(yīng)處理,相應(yīng)處理可以為請(qǐng)求端再次發(fā)送請(qǐng)求和預(yù)設(shè)時(shí)長(zhǎng)。
上述實(shí)施例中,根據(jù)超時(shí)點(diǎn)和與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)設(shè)置位置不同采用不同的執(zhí)行失敗指令,實(shí)現(xiàn)請(qǐng)求端與服務(wù)端的數(shù)據(jù)保持一致,降低成本。
下面以一具體例子說(shuō)明上述實(shí)施例記載的方案能夠?qū)崿F(xiàn)請(qǐng)求端與服務(wù)端的數(shù)據(jù)保持一致:以交易過(guò)程為例進(jìn)行說(shuō)明,交易分為兩種,一種為查詢類,另一種為受理類。對(duì)于查詢類交易,將本發(fā)明實(shí)施例中的響應(yīng)請(qǐng)求端請(qǐng)求的方法應(yīng)用在服務(wù)端,當(dāng)服務(wù)端發(fā)送響應(yīng)失敗指令到請(qǐng)求端時(shí),服務(wù)端響應(yīng)請(qǐng)求端請(qǐng)求的過(guò)程結(jié)束,從而實(shí)現(xiàn)縮短響應(yīng)時(shí)間,此查詢類交易并不存在請(qǐng)求端與服務(wù)端數(shù)據(jù)不一致的問(wèn)題。對(duì)于受理類交易,受理類交易包括繳費(fèi)或訂購(gòu)等,當(dāng)超時(shí)點(diǎn)和與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)均位于數(shù)據(jù)庫(kù)內(nèi),且進(jìn)行回滾操作時(shí),繳費(fèi)或訂購(gòu)則不成功,請(qǐng)求端和服務(wù)端的數(shù)據(jù)一致。
如圖3所示,本發(fā)明實(shí)施例提供的響應(yīng)請(qǐng)求端請(qǐng)求的系統(tǒng),包括:
設(shè)置模塊,用于根據(jù)業(yè)務(wù)特性在響應(yīng)程序中設(shè)置超時(shí)點(diǎn)和與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn);
接收模塊,用于接收請(qǐng)求端發(fā)送的請(qǐng)求和預(yù)設(shè)時(shí)長(zhǎng);
響應(yīng)模塊,用于響應(yīng)所述請(qǐng)求,分別捕獲超時(shí)點(diǎn)當(dāng)前時(shí)間及與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)當(dāng)前時(shí)間,計(jì)算超時(shí)點(diǎn)當(dāng)前時(shí)間和入口點(diǎn)當(dāng)前時(shí)間的差值,并將該差值作為當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí),其中,所述超時(shí)點(diǎn)為當(dāng)前所執(zhí)行程序出口點(diǎn),所述與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)為當(dāng)前所執(zhí)行程序入口點(diǎn);
計(jì)算模塊,用于在超時(shí)點(diǎn)計(jì)算預(yù)設(shè)時(shí)長(zhǎng)與當(dāng)前累加執(zhí)行程序的總程序執(zhí)行耗時(shí)之差,作為當(dāng)前剩余時(shí)長(zhǎng);
判斷模塊,用于判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于零,是,則繼續(xù)響應(yīng),直到得到與所述請(qǐng)求對(duì)應(yīng)的響應(yīng)結(jié)果,并將響應(yīng)結(jié)果發(fā)送給請(qǐng)求端,否,則執(zhí)行失敗指令。
本發(fā)明實(shí)施例提供的響應(yīng)請(qǐng)求端請(qǐng)求的系統(tǒng),通過(guò)設(shè)置超時(shí)點(diǎn)和入口點(diǎn),根據(jù)捕獲超時(shí)點(diǎn)當(dāng)前時(shí)間和入口點(diǎn)當(dāng)前時(shí)間計(jì)算差值,將該差值作為當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí),在超時(shí)點(diǎn)計(jì)算預(yù)設(shè)時(shí)長(zhǎng)與當(dāng)前累加執(zhí)行程序的總程序執(zhí)行耗時(shí)之差,作為當(dāng)前剩余時(shí)長(zhǎng),判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于零,是,則繼續(xù)響應(yīng),否,則執(zhí)行失敗指令,在當(dāng)前所執(zhí)行程序的程序執(zhí)行耗時(shí)過(guò)長(zhǎng)時(shí)則結(jié)束對(duì)請(qǐng)求的響應(yīng),實(shí)現(xiàn)減少響應(yīng)周期,及時(shí)響應(yīng)請(qǐng)求端,使請(qǐng)求端與服務(wù)端的數(shù)據(jù)保持一致,提高用戶體驗(yàn)度,減少成本。
如圖4所示,本發(fā)明實(shí)施例提供的響應(yīng)請(qǐng)求端請(qǐng)求的系統(tǒng),在上述實(shí)施例的基礎(chǔ)上,所述設(shè)置模塊還用于設(shè)置每個(gè)從與超時(shí)點(diǎn)對(duì)應(yīng)的所述入口點(diǎn)到所述超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng);所述判斷模塊包括:
首判斷模塊,用于判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于零,是,則調(diào)用再判斷模塊,否,則調(diào)用終止模塊;
再判斷模塊,用于判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于從與下一超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)到下一超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng),是,則調(diào)用繼續(xù)響應(yīng)模塊,否,則調(diào)用終止模塊;
繼續(xù)響應(yīng)模塊,用于繼續(xù)響應(yīng),直到得到與所述請(qǐng)求對(duì)應(yīng)的響應(yīng)結(jié)果,并將響應(yīng)結(jié)果發(fā)送給請(qǐng)求端;
終止模塊,用于執(zhí)行失敗指令。
本發(fā)明實(shí)施例提供的響應(yīng)請(qǐng)求端請(qǐng)求的系統(tǒng),通過(guò)判斷當(dāng)前剩余時(shí)長(zhǎng)是否大于從與下一超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)到下一超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng),是,則繼續(xù)響應(yīng)請(qǐng)求,否,則執(zhí)行失敗指令。在當(dāng)前剩余時(shí)長(zhǎng)不足以執(zhí)行下一待執(zhí)行程序時(shí)結(jié)束對(duì)請(qǐng)求的響應(yīng),實(shí)現(xiàn)進(jìn)一步減少響應(yīng)周期,更快響應(yīng)請(qǐng)求端,使請(qǐng)求端與服務(wù)端的數(shù)據(jù)保持一致,提高用戶體驗(yàn)度,減少成本。
可選地,本發(fā)明實(shí)施例中,所述預(yù)設(shè)時(shí)長(zhǎng)大于或等于所有從與超時(shí)點(diǎn)對(duì)應(yīng)的所述入口點(diǎn)到所述超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng)的總和。
可選地,本發(fā)明實(shí)施例中,所述捕獲超時(shí)點(diǎn)當(dāng)前時(shí)間及與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)當(dāng)前時(shí)間所采用的時(shí)鐘為同一個(gè)。
可選地,本發(fā)明實(shí)施例中,所述執(zhí)行失敗指令包括回滾操作或發(fā)送響應(yīng)失敗指令到請(qǐng)求端,并終止響應(yīng)所述請(qǐng)求。
本發(fā)明實(shí)施例的響應(yīng)請(qǐng)求端請(qǐng)求的系統(tǒng)中各個(gè)模塊所執(zhí)行的功能已經(jīng)在上述實(shí)施例中的響應(yīng)請(qǐng)求端請(qǐng)求的方法中做了詳細(xì)的介紹,在此不再贅述。
本發(fā)明所有實(shí)施例均可應(yīng)用在電信、金融、互聯(lián)網(wǎng)等中,特別是涉及到交易過(guò)程。實(shí)現(xiàn)本發(fā)明所有實(shí)施例的條件是服務(wù)端的參數(shù)設(shè)置支持時(shí)間參數(shù)設(shè)置,設(shè)置從與超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)到超時(shí)點(diǎn)之間的待執(zhí)行程序的標(biāo)準(zhǔn)執(zhí)行時(shí)長(zhǎng)的方法是公開技術(shù),可以根據(jù)客戶的體驗(yàn)效果設(shè)置預(yù)設(shè)時(shí)長(zhǎng),本發(fā)明只需關(guān)注從與一個(gè)超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)到一個(gè)超時(shí)點(diǎn)之間的程序的程序執(zhí)行用時(shí),無(wú)需關(guān)注從該一個(gè)超時(shí)點(diǎn)到與下一超時(shí)點(diǎn)對(duì)應(yīng)的入口點(diǎn)之間的程序的程序執(zhí)行用時(shí)。請(qǐng)求端可以是客戶端或是其他發(fā)出請(qǐng)求的端口。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。