事務(wù)處理方法及裝置的制造方法
【專利摘要】本申請公開了一種事務(wù)處理方法,包括:獲取待處理事務(wù)的第一請求,第一請求為預(yù)處理請求;判斷所述待處理事務(wù)的第二請求是否符合預(yù)設(shè)條件,第二請求為回滾請求;若是,結(jié)束所述第一請求;若否,執(zhí)行所述第一請求。本申請還公開了一種應(yīng)用該事務(wù)處理方法的事務(wù)處理裝置。與現(xiàn)有技術(shù)相比,本申請所提供的事務(wù)處理方法和裝置,根據(jù)第二請求是否符合預(yù)設(shè)條件來決定是否結(jié)束剛獲取到的第一請求,無論第一請求是預(yù)處理請求還是回滾請求,均能實現(xiàn)回滾請求被執(zhí)行后預(yù)處理請求不會被執(zhí)行,預(yù)處理請求被執(zhí)行后回滾請求才會執(zhí)行;避免預(yù)處理請求在回滾請求后完成來破壞事務(wù)的一致性,保證了數(shù)據(jù)庫內(nèi)關(guān)于該事務(wù)的數(shù)據(jù)的正確性。
【專利說明】
事務(wù)處理方法及裝置
技術(shù)領(lǐng)域
[0001]本申請涉及計算機(jī)技術(shù)領(lǐng)域,尤其涉及一種事務(wù)處理方法及裝置。【背景技術(shù)】
[0002]事務(wù)是計算機(jī)技術(shù)領(lǐng)域中一個廣泛使用的概念,是恢復(fù)和并發(fā)控制的基本單位, 由計算機(jī)所處理的多個任務(wù)組成,隨著計算機(jī)性能的快速發(fā)展,事務(wù)處理需求也越來越多; 事務(wù)具有一致性,一致性要求如果事務(wù)中某個任務(wù)發(fā)生處理異常,數(shù)據(jù)庫中關(guān)于該事務(wù)的所有數(shù)據(jù)均需返回至事務(wù)處理前的狀態(tài),以保證數(shù)據(jù)庫內(nèi)數(shù)據(jù)與事務(wù)的處理進(jìn)程保持一致。
[0003]現(xiàn)有技術(shù)中,通過使用兩階段提交協(xié)議來進(jìn)行事務(wù)的處理,該協(xié)議具體包括:1) 預(yù)處理階段,事務(wù)協(xié)調(diào)器發(fā)送預(yù)處理請求給事務(wù)處理中涉及的參與者,通知它們準(zhǔn)備提交數(shù)據(jù);2)回滾階段,如果事務(wù)協(xié)調(diào)器一直未收到某一參與者的響應(yīng)或有任一參與者做出否定響應(yīng),即表示該參與者準(zhǔn)備失敗,則將一個回滾請求發(fā)送給所有參與者,使得數(shù)據(jù)庫中關(guān)于該事務(wù)的所有數(shù)據(jù)恢復(fù)至事務(wù)處理前狀態(tài)。
[0004]然而,該現(xiàn)有技術(shù)中,若有參與者由于事務(wù)處理能力較差或網(wǎng)絡(luò)抖動等原因,一直未能完成預(yù)處理請求,而在完成回滾請求并發(fā)出回滾請求完成響應(yīng)后,才完成預(yù)處理請求, 則會導(dǎo)致后續(xù)該參與者一直處于準(zhǔn)備狀態(tài),而事務(wù)協(xié)調(diào)器則因收到了參與者的回滾完成響應(yīng)后,誤認(rèn)為參與者均回滾完成,使得事務(wù)的一致性被破壞,導(dǎo)致數(shù)據(jù)庫內(nèi)關(guān)于該事務(wù)的數(shù)據(jù)將會一片混亂而不可預(yù)測,造成數(shù)據(jù)庫無法正常使用。
[0005]綜上,現(xiàn)有技術(shù)中的事務(wù)處理存在著事務(wù)一致性難以保證的問題。
[0006]申請內(nèi)容
[0007]本申請實施例提供一種事務(wù)處理方法及裝置,解決了現(xiàn)有技術(shù)中事務(wù)處理過程中一致性難以保證的技術(shù)問題。
[0008]本申請實施例還提供一種事務(wù)處理方法,其包括:
[0009]獲取待處理事務(wù)的第一請求,所述第一請求為預(yù)處理請求;
[0010]判斷所述待處理事務(wù)的第二請求是否符合預(yù)設(shè)條件,所述第二請求為回滾請求;
[0011]若是,結(jié)束所述第一請求;若否,執(zhí)行所述第一請求。
[0012]本申請實施例還提供一種事務(wù)處理方法,其包括:
[0013]獲取待處理事務(wù)的第一請求,所述第一請求為回滾請求;
[0014]判斷所述待處理事務(wù)的第二請求是否符合預(yù)設(shè)條件,所述第二請求為預(yù)處理請求;
[0015]若是,結(jié)束所述第一請求;若否,執(zhí)行所述第一請求。
[0016]本申請實施例還提供一種事務(wù)處理裝置,其包括:
[0017]獲取模塊,用于獲取待處理事務(wù)的第一請求,所述第一請求為預(yù)處理請求;
[0018]判斷模塊,用于判斷所述待處理事務(wù)的第二請求是否符合預(yù)設(shè)條件,所述第二請求為回滾請求;
[0019]執(zhí)行模塊,若所述第二請求符合預(yù)設(shè)條件,用于結(jié)束所述第一請求,若所述第二請求不符合預(yù)設(shè)條件,用于執(zhí)行所述第一請求。
[0020]本申請實施例還提供一種事務(wù)處理裝置,其包括:
[0021]獲取模塊,用于獲取待處理事務(wù)的第一請求,所述第一請求為回滾請求;
[0022]判斷模塊,用于判斷所述待處理事務(wù)的第二請求是否符合預(yù)設(shè)條件,所述第二請求為預(yù)處理請求;
[0023]執(zhí)行模塊,若所述第二請求符合預(yù)設(shè)條件,用于結(jié)束所述第一請求,若所述第二請求不符合預(yù)設(shè)條件,用于執(zhí)行所述第一請求。
[0024]本申請實施例采用的上述至少一個技術(shù)方案能夠達(dá)到以下有益效果:
[0025]本申請實施例中,根據(jù)第二請求是否符合預(yù)設(shè)條件來決定是否結(jié)束剛獲取到的第一請求,無論第一請求是預(yù)處理請求還是回滾請求,均能實現(xiàn)回滾請求被執(zhí)行后預(yù)處理請求不會被執(zhí)行,預(yù)處理請求被執(zhí)行后回滾請求才會執(zhí)行;避免預(yù)處理請求在回滾請求后完成來破壞事務(wù)的一致性,保證了數(shù)據(jù)庫內(nèi)關(guān)于該事務(wù)的數(shù)據(jù)的正確性?!靖綀D說明】
[0026]此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
[0027]圖1為本申請實施例提供的事務(wù)處理方法的過程。
[0028]圖2為本申請實施例提供的事務(wù)處理方法中判斷待處理事務(wù)的第二請求是否符合預(yù)設(shè)條件的具體過程,此時,第一請求為預(yù)處理請求,第二請求為回滾請求。
[0029]圖3為本申請另一實施例提供的事務(wù)處理方法中判斷待處理事務(wù)的第二請求是否符合預(yù)設(shè)條件的具體過程,此時,第一請求為回滾請求,第二請求為預(yù)處理請求。
[0030]圖4為本申請實施例提供的事務(wù)處理裝置的結(jié)構(gòu)示意圖。【具體實施方式】
[0031]為使本申請的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本申請具體實施例及相應(yīng)的附圖對本申請技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護(hù)的范圍。
[0032]在事務(wù)在處理過程中,可能存在預(yù)處理請求在回滾請求完成后才結(jié)束導(dǎo)致事務(wù)一致性被破壞的情形,為保證事務(wù)的一致性,本申請實施例提供一種事務(wù)處理方法,以下結(jié)合附圖詳細(xì)介紹本方法。
[0033]圖1為本申請實施例提供的事務(wù)處理方法的過程,包括如下步驟:
[0034]S10、獲取待處理事務(wù)的第一請求。
[0035]本申請的實施例中,第一請求是指事務(wù)的預(yù)處理請求,用于通知參與者準(zhǔn)備提交數(shù)據(jù)。
[0036]通常提交數(shù)據(jù)的動作均伴隨著事務(wù)相關(guān)數(shù)據(jù)的轉(zhuǎn)移,例如,通過網(wǎng)上銀行內(nèi)余額賬戶來進(jìn)行網(wǎng)購貨款支付,該支付過程即為一事務(wù)。首先,買家的網(wǎng)上銀行余額賬戶獲取預(yù)處理請求后,將貨款轉(zhuǎn)至托管賬戶,在貨款成功存入托管賬戶后,視為余額賬戶完成了預(yù)處理請求;后續(xù),貨款再從托管賬戶提交至賣家賬戶,從而完成整個貨款支付。
[0037]S20、判斷該待處理事務(wù)的第二請求是否符合預(yù)設(shè)條件,若是,執(zhí)行步驟S30;若否,執(zhí)行步驟S40。
[0038]其中,第二請求為回滾請求,該預(yù)設(shè)條件為:第二請求(回滾請求)在處理中或已經(jīng)處理完。
[0039]S30、結(jié)束該第一請求,并對管理事務(wù)處理的事務(wù)協(xié)調(diào)器發(fā)送預(yù)處理請求失敗響應(yīng)。
[0040]S40、執(zhí)行該第一請求。
[0041]同樣以網(wǎng)上銀行內(nèi)余額賬戶來進(jìn)行網(wǎng)購貨款支付為例,余額賬戶獲取預(yù)處理請求后,若余額賬戶事務(wù)處理能力和網(wǎng)絡(luò)傳輸能力均正常時,余額賬戶執(zhí)行預(yù)處理請求時,回滾請求并未生成,自然回滾請求也不符合其預(yù)設(shè)條件,此時,繼續(xù)執(zhí)行第一請求,以推動整個事務(wù)處理進(jìn)程。
[0042]然而,在余額賬戶處理能力較差或網(wǎng)絡(luò)抖動較大時,余額賬戶在后續(xù)收到回滾請求后,開始執(zhí)行回滾請求甚至完成回滾請求時,才獲取到預(yù)處理請求;此時,因回滾請求符合預(yù)設(shè)條件,直接結(jié)束預(yù)處理請求,避免繼續(xù)執(zhí)行預(yù)處理請求導(dǎo)致的事務(wù)一致性問題,保證了數(shù)據(jù)庫內(nèi)關(guān)于該事務(wù)的數(shù)據(jù)的正確性。
[0043]圖2為本申請實施例提供事務(wù)處理方法中判斷待處理事務(wù)的回滾請求是否符合預(yù)設(shè)條件的具體過程圖,該步驟S20包括:
[0044]S21a、生成待處理事務(wù)的事務(wù)信息,事務(wù)信息包括事務(wù)標(biāo)識和事務(wù)狀態(tài)。
[0045]本申請的實施例中,每次獲取事務(wù)處理請求,無論該事務(wù)處理請求是預(yù)處理請求還是回滾請求,均會生成待處理事務(wù)的事務(wù)信息。
[0046]事務(wù)信息中事務(wù)標(biāo)識可通過事務(wù)內(nèi)容、事務(wù)參與者以及事務(wù)發(fā)起時間等多個因素來定義,與事務(wù)請求的類型無關(guān),使得每個事務(wù)處理的過程中,該事務(wù)的事務(wù)信息具有唯一的事務(wù)標(biāo)識。
[0047]事務(wù)信息中事務(wù)狀態(tài)為正?;蚧貪L,在獲取預(yù)處理請求時,事務(wù)狀態(tài)則標(biāo)為正常; 獲取回滾請求時,事務(wù)狀態(tài)則標(biāo)為回滾。
[0048]S22a、判斷已記載事務(wù)信息的事務(wù)信息總表內(nèi)是否存在與待處理事務(wù)的事務(wù)標(biāo)識相同的事務(wù)彳目息,若否,執(zhí)行S23a,若是,執(zhí)行S24a。
[0049]本申請的實施例中,提供一事務(wù)彳目息總表,每次生成事務(wù)彳目息后,均將該事務(wù)的事務(wù)信息存入事務(wù)信息總表內(nèi)。事務(wù)信息總表對事務(wù)標(biāo)識做數(shù)據(jù)完整性約束,使得每次事務(wù)處理均只會有唯一的事務(wù)信息。
[0050]在獲取待處理事務(wù)的事務(wù)處理請求后,將待處理事務(wù)的事務(wù)信息插入事務(wù)信息總表,根據(jù)能夠成功插入來判定是否存在與待處理事務(wù)的事務(wù)標(biāo)識相同的事務(wù)信息。
[0051]若出現(xiàn)插入失敗,則判定事務(wù)信息總表內(nèi)存在與待處理事務(wù)的事務(wù)標(biāo)識相同的事務(wù)信息,反之,則判定事務(wù)信息總表內(nèi)不存在事務(wù)標(biāo)識相同的事務(wù)信息,同時待處理事務(wù)的事務(wù)信息被插入事務(wù)信息總表內(nèi),完成對事務(wù)信息總表的更新。
[0052]當(dāng)然,本申請的其他實施例中,還可通過提取待處理事務(wù)的事務(wù)標(biāo)識,查詢事務(wù)信息總表,判斷該事務(wù)標(biāo)識是否存在于其中,以實現(xiàn)事務(wù)信息總表內(nèi)是否存在與待處理事務(wù)的事務(wù)標(biāo)識相同的事務(wù)信息,在此不做贅述。
[0053]S23a、判定存在相同的事務(wù)信息,即回滾請求不符合預(yù)設(shè)條件。
[0054]在事務(wù)信息總表內(nèi)不存在與待處理事務(wù)的事務(wù)標(biāo)識相同的事務(wù)信息時,表明本次待處理事務(wù)的預(yù)處理請求為首次請求,可繼續(xù)執(zhí)行該預(yù)處理請求。
[0055]S24a、判斷存于事務(wù)信息總表內(nèi)的事務(wù)信息的事務(wù)狀態(tài)是否為回滾,若否,執(zhí)行 S25a,若是,執(zhí)行S26a。
[0056]若事務(wù)信息總表內(nèi)存在與待處理事務(wù)的事務(wù)標(biāo)識相同的事務(wù)信息,表明本次事務(wù)處理請求并非該事務(wù)的首次處理請求,通過判斷記載于事務(wù)信息總表內(nèi)事務(wù)信息的事務(wù)狀態(tài)是否為回滾,來明確該事務(wù)的當(dāng)前處理進(jìn)度。
[0057]在事務(wù)信息總表內(nèi)事務(wù)信息的事務(wù)狀態(tài)為回滾時,表明該事務(wù)處理已經(jīng)到了回滾階段,此時,判定該事務(wù)的回滾請求正在處理或已處理完;反之,若在事務(wù)信息總表內(nèi)事務(wù)信息的事務(wù)狀態(tài)為正常,表明該事務(wù)處理還處于預(yù)處理階段,通常為單個事務(wù)請求參與者做多次預(yù)處理請求,可繼續(xù)執(zhí)行當(dāng)前的預(yù)處理請求。
[0058]S25a、判定回滾請求不符合預(yù)設(shè)條件。
[0059]S26a、判定回滾請求在處理中或已經(jīng)處理完,即回滾請求符合預(yù)設(shè)條件。
[0060]本申請的實施例中,事務(wù)處理方法還包括:在待處理事務(wù)提交成功時,刪除該待處理事務(wù)的事務(wù)信息,降低事務(wù)信息總表占用空間,同時也提高事務(wù)標(biāo)識查詢效率。
[0061]本申請另一實施例提供的事務(wù)處理方法的過程,與前述實施例中事務(wù)處理方法的過程相比,區(qū)別在于:第一請求為回滾請求,第二請求為預(yù)處理請求,預(yù)設(shè)條件為:預(yù)處理請求在處理中。
[0062]圖3為本申請另一實施例提供事務(wù)處理方法中判斷待處理事務(wù)的回滾請求是否符合預(yù)設(shè)條件的具體過程圖,步驟S20包括:
[0063]S2 lb、生成待處理事務(wù)的事務(wù)信息,事務(wù)信息包括事務(wù)標(biāo)識和事務(wù)狀態(tài)。
[0064]S22b、判斷已記載事務(wù)信息的事務(wù)信息總表內(nèi)是否存在與待處理事務(wù)的事務(wù)標(biāo)識相同的事務(wù)信息,若是,執(zhí)行S23b,若否,執(zhí)行S24b。
[0065]S23b、判定存在相同的事務(wù)信息,即預(yù)處理請求不符合預(yù)設(shè)條件。
[0066]S24b、判斷是否能夠?qū)⒋幚硎聞?wù)的事務(wù)彳目息插入至事務(wù)彳目息總表,若是,執(zhí)行 S25b,若否,執(zhí)彳丁 S26b。
[0067]在事務(wù)彳目息總表內(nèi)并不存在與待處理事務(wù)相同事務(wù)標(biāo)識的事務(wù)彳目息存在,且待處理事務(wù)的事務(wù)信息也無法插入事務(wù)信息總表時,表明之前事務(wù)參與者將獲取預(yù)處理請求時所生成的事務(wù)信息插入事務(wù)信息總表的動作仍然在進(jìn)行中。
[0068]此時,使得事務(wù)彳目息總表內(nèi)不存在相同該事物標(biāo)識的事務(wù)彳目息,事務(wù)參與者無法將獲取回滾請求時所生成的事務(wù)信息也插入事務(wù)信息總表內(nèi),進(jìn)而獲得預(yù)處理請求在處理中的結(jié)論。
[0069]S25b、判定事務(wù)信息插入失敗,即預(yù)處理請求不符合預(yù)設(shè)條件。
[0070]S26b、判定預(yù)處理請求在處理中,即預(yù)設(shè)處理請求符合預(yù)設(shè)條件。
[0071]通過設(shè)定預(yù)處理請求當(dāng)預(yù)處理請求在處理中時,結(jié)束回滾請求,并對管理事務(wù)處理的事務(wù)協(xié)調(diào)器發(fā)送回滾請求失敗響應(yīng)。事務(wù)協(xié)調(diào)器等待預(yù)設(shè)延時后,再向事務(wù)參與者發(fā)送回滾請求,事務(wù)參與者重復(fù)前述執(zhí)行步驟S21b_S26b,直至得到預(yù)處理請求已處理完或處理出錯為止。
[0072]由于在完成預(yù)處理請求后,才能執(zhí)行回滾請求;避免了預(yù)處理請求在回滾請求結(jié)束后才完成,保證了數(shù)據(jù)庫內(nèi)關(guān)于該事務(wù)的數(shù)據(jù)的正確性。
[0073]本申請的實施例中,事務(wù)處理方法還包括:在待處理事務(wù)回滾成功時,將待處理事務(wù)的事務(wù)狀態(tài)更新為回滾。
[0074]若在回滾請求執(zhí)行前,已經(jīng)執(zhí)行了該事務(wù)的預(yù)處理請求或執(zhí)行預(yù)處理請求異常, 在事務(wù)信息總表內(nèi)已經(jīng)存有該待處理事務(wù)的事務(wù)信息,且存于事務(wù)信息總表內(nèi)的待處理事務(wù)的事務(wù)信息的事務(wù)狀態(tài)為正常,則在回滾完成后,將該事務(wù)狀態(tài)由正常改為回滾。
[0075]若在回滾請求執(zhí)行前,該事務(wù)的預(yù)處理請求未執(zhí)行,則將回滾請求時所生成的事務(wù)信息的事務(wù)狀態(tài)直接更新為回滾。
[0076]圖4為本申請實施例提供的事務(wù)處理裝置的機(jī)構(gòu)示意圖,本申請實施例所提供的事務(wù)處理裝置基于以上事務(wù)處理方法,故該裝置的具體細(xì)節(jié)可參照以上處理方法,本文不再予以贅述。該事務(wù)處理裝置包括:
[0077]獲取模塊10,用于獲取待處理事務(wù)的第一請求。
[0078]判斷模塊20,用于判斷待處理事務(wù)的第二請求是否符合預(yù)設(shè)條件。
[0079]執(zhí)行模塊30,若第二請求符合預(yù)設(shè)條件,用于結(jié)束第一請求,若第二請求不符合預(yù)設(shè)條件,用于執(zhí)行第一請求。
[0080]本申請實施例中,第一請求是預(yù)處理請求,第二請求是回滾請求;預(yù)設(shè)條件為:回滾請求在處理中或已經(jīng)處理完。[0081 ] 本申請實施例中,判斷模塊20具體包括:
[0082]信息生成單元,生成待處理事務(wù)的事務(wù)信息,事務(wù)信息包括事務(wù)標(biāo)識和事務(wù)狀態(tài)。
[0083]標(biāo)識判斷單元,用于判斷事務(wù)信息總表內(nèi)是否存在與待處理事務(wù)的事務(wù)標(biāo)識相同的事務(wù)信息。
[0084]狀態(tài)判斷單元,若存在事務(wù)標(biāo)識相同的事務(wù)信息,用于判斷存于事務(wù)信息總表內(nèi)的事務(wù)信息的事務(wù)狀態(tài)是否為回滾,若事務(wù)狀態(tài)是回滾,判定第二請求在處理中或已經(jīng)處理完。
[0085]本申請實施例中,標(biāo)識判斷單元具體用于:
[0086]將待處理事務(wù)的事務(wù)信息插入事務(wù)信息總表。
[0087]判斷是否有事務(wù)標(biāo)識重復(fù)異常,若否,判定存在與待處理事務(wù)的事務(wù)標(biāo)識相同的事務(wù)信息。
[0088]本申請實施例中,事務(wù)處理裝置還包括:
[0089]信息刪除模塊,用于在待處理事務(wù)提交成功時,刪除該待處理事務(wù)的事務(wù)信息。
[0090]本申請實施例中,第一請求是回滾請求,第二請求是預(yù)處理請求;預(yù)設(shè)條件為:第二請求在處理中。[0091 ] 本申請實施例中,判斷模塊20具體包括:
[0092]信息生成單元,用于生成待處理事務(wù)的事務(wù)信息,事務(wù)信息包括事務(wù)標(biāo)識和事務(wù)狀態(tài)。
[0093]標(biāo)識判斷單元,用于判斷事務(wù)信息總表內(nèi)是否存在與待處理事務(wù)的事務(wù)標(biāo)識相同的事務(wù)信息。
[0094]插入判斷單元,若不存在事務(wù)標(biāo)識相同的事務(wù)信息,用于判斷是否能夠?qū)⒋幚硎聞?wù)的事務(wù)信息插入至事務(wù)信息總表,若事務(wù)信息插入失敗,判定第二請求在處理中。
[0095]本申請實施例中,插入判斷單元具體用于:
[0096]將待處理事務(wù)的事務(wù)信息插入事務(wù)信息總表。
[0097]判斷是否有事務(wù)標(biāo)識重復(fù)異常,若否,判定存在與待處理事務(wù)的事務(wù)標(biāo)識相同的事務(wù)信息。
[0098]本申請實施例中,事務(wù)處理裝置還包括:
[0099]回滾更新模塊,用于在待處理事務(wù)回滾成功時,將待處理事務(wù)的事務(wù)狀態(tài)更新為回滾。
[0100]本申請實施例中,事務(wù)處理裝置還包括響應(yīng)發(fā)送模塊,用于發(fā)送第一請求失敗響應(yīng)。
[0101]本申請實施例所提供的事務(wù)處理裝置,根據(jù)第二請求是否符合預(yù)設(shè)條件來決定是否結(jié)束剛獲取到的第一請求,無論第一請求是預(yù)處理請求還是回滾請求,均能實現(xiàn)回滾請求被執(zhí)行后預(yù)處理請求不會被執(zhí)行,預(yù)處理請求被執(zhí)行后回滾請求才會執(zhí)行;避免預(yù)處理請求在回滾請求后完成來破壞事務(wù)的一致性,保證了數(shù)據(jù)庫內(nèi)關(guān)于該事務(wù)的數(shù)據(jù)的正確性。
[0102]需要說明的是,本申請的實施例所提供事務(wù)處理方法的各步驟的執(zhí)行主體均可以是同一設(shè)備,或者,該方法也由不同設(shè)備作為執(zhí)行主體。比如,步驟21和步驟22的執(zhí)行主體可以為設(shè)備1,步驟23的執(zhí)行主體可以為設(shè)備2 ;又比如,步驟21的執(zhí)行主體可以為設(shè)備 1,步驟22和步驟23的執(zhí)行主體可以為設(shè)備2。
[0103]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、裝置、或計算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機(jī)可用程序代碼的計算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機(jī)程序產(chǎn)品的形式。
[0104]本申請是參照根據(jù)本申請實施例的方法、設(shè)備(裝置)、和計算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程事務(wù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可編程事務(wù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0105]這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程事務(wù)處理設(shè)備以特定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0106]這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程事務(wù)處理設(shè)備上,使得在計算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實現(xiàn)的處理,從而在計算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0107]在一個典型的配置中,計算設(shè)備包括一個或多個處理器(CPU)、輸入/輸出接口、 網(wǎng)絡(luò)接口和內(nèi)存。
[0108]內(nèi)存可能包括計算機(jī)可讀介質(zhì)中的非永久性存儲器,隨機(jī)存取存儲器(RAM)和/ 或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內(nèi)存是計算機(jī)可讀介質(zhì)的示例。
[0109]計算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機(jī)可讀指令、事務(wù)結(jié)構(gòu)、程序的模塊或其他事務(wù)。 計算機(jī)的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)、 動態(tài)隨機(jī)存取存儲器(DRAM)、其他類型的隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPR0M)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器 (CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitory media),如調(diào)制的事務(wù)信號和載波。
[0110]還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
[0111]本領(lǐng)域技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、裝置或計算機(jī)程序產(chǎn)品。 因此,本申請可采用完全硬件實施例、完全軟件實施例或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機(jī)可用程序代碼的計算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機(jī)程序產(chǎn)品的形式。
[0112]以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。
【主權(quán)項】
1.一種事務(wù)處理方法,其特征在于,包括:獲取待處理事務(wù)的第一請求,所述第一請求是預(yù)處理請求;判斷所述待處理事務(wù)的第二請求是否符合預(yù)設(shè)條件,所述第二請求是回滾請求;若是,結(jié)束所述第一請求;若否,執(zhí)行所述第一請求。2.如權(quán)利要求1所述的事務(wù)處理方法,其特征在于,所述預(yù)設(shè)條件為:所述第二請求在 處理中或已經(jīng)處理完。3.如權(quán)利要求2所述的事務(wù)處理方法,其特征在于,判斷所述待處理事務(wù)的第二請求 是否符合預(yù)設(shè)條件,具體包括:生成待處理事務(wù)的事務(wù)彳目息,所述事務(wù)彳目息包括事務(wù)標(biāo)識和事務(wù)狀態(tài);判斷已記載事務(wù)信息的事務(wù)信息總表內(nèi)是否存在與所述待處理事務(wù)的事務(wù)標(biāo)識相同 的事務(wù)信息;若存在事務(wù)標(biāo)識相同的事務(wù)信息,判斷存于所述事務(wù)信息總表內(nèi)的所述事務(wù)信息的事 務(wù)狀態(tài)是否為回滾;若所述事務(wù)狀態(tài)是回滾,判定所述第二請求在處理中或已經(jīng)處理完。4.如權(quán)利要求3所述的事務(wù)處理方法,其特征在于,判斷是否存在與所述待處理事務(wù) 的事務(wù)標(biāo)識相同的事務(wù)彳目息,具體包括:將所述待處理事務(wù)的事務(wù)信息插入所述事務(wù)信息總表;判斷是否有事務(wù)標(biāo)識重復(fù),若是,判定存在與所述待處理事務(wù)的事務(wù)標(biāo)識相同的事務(wù) fg息。5.如權(quán)利要求3所述的事務(wù)處理方法,其特征在于,事務(wù)處理方法還包括:在待處理事務(wù)提交成功時,刪除該待處理事務(wù)的事務(wù)彳目息。6.如權(quán)利要求1所述的事務(wù)處理方法,其特征在于,在結(jié)束所述第一請求之后還包括 如下步驟:發(fā)送第一請求的失敗響應(yīng)。7.—種事務(wù)處理方法,其特征在于,包括:獲取待處理事務(wù)的第一請求,所述第一請求是回滾請求;判斷所述待處理事務(wù)的第二請求是否符合預(yù)設(shè)條件,所述第二請求是預(yù)處理請求;若是,結(jié)束所述第一請求;若否,執(zhí)行所述第一請求。8.如權(quán)利要求7所述的事務(wù)處理方法,其特征在于,所述預(yù)設(shè)條件為:所述第二請求在 處理中。9.如權(quán)利要求8所述的事務(wù)處理方法,其特征在于,判斷所述待處理事務(wù)的第二請求 是否符合預(yù)設(shè)條件,具體包括:生成待處理事務(wù)的事務(wù)彳目息,所述事務(wù)彳目息包括事務(wù)標(biāo)識和事務(wù)狀態(tài);判斷已記載事務(wù)信息的事務(wù)信息總表內(nèi)是否存在與所述待處理事務(wù)的事務(wù)標(biāo)識相同 的事務(wù)信息;若不存在事務(wù)標(biāo)識相同的事務(wù)信息,判斷是否能夠?qū)⒋幚硎聞?wù)的事務(wù)信息插入至事 務(wù)信息總表;若所述事務(wù)信息插入失敗,判定所述第二請求在處理中。10.如權(quán)利要求9所述的事務(wù)處理方法,其特征在于,判斷是否能夠?qū)⒋幚硎聞?wù)的事務(wù)信息插入至事務(wù)信息總表,具體包括:將所述待處理事務(wù)的事務(wù)信息插入所述事務(wù)信息總表;判斷是否有事務(wù)標(biāo)識重復(fù),若是,判定所述事務(wù)彳目息插入失敗。11.如權(quán)利要求9所述的事務(wù)處理方法,其特征在于,事務(wù)處理方法還包括:在待處理事務(wù)回滾成功時,將待處理事務(wù)的事務(wù)狀態(tài)更新為回滾。12.如權(quán)利要求7所述的事務(wù)處理方法,其特征在于,在結(jié)束所述第一請求之后還包括 如下步驟:發(fā)送第一請求的失敗響應(yīng)。13.—種事務(wù)處理裝置,其特征在于,包括:獲取模塊,用于獲取待處理事務(wù)的第一請求,所述第一請求是預(yù)處理請求;判斷模塊,用于判斷所述待處理事務(wù)的第二請求是否符合預(yù)設(shè)條件,所述第二請求是 回滾請求;執(zhí)行模塊,若所述第二請求符合預(yù)設(shè)條件,用于結(jié)束所述第一請求,若所述第二請求不 符合預(yù)設(shè)條件,用于執(zhí)行所述第一請求。14.如權(quán)利要求13所述的事務(wù)處理裝置,其特征在于所述預(yù)設(shè)條件為:所述回滾請求 在處理中或已處理完。15.—種事務(wù)處理裝置,其特征在于,包括:獲取模塊,用于獲取待處理事務(wù)的第一請求,所述第一請求是回滾請求;判斷模塊,用于判斷所述待處理事務(wù)的第二請求是否符合預(yù)設(shè)條件,所述第二請求是 預(yù)處理請求;執(zhí)行模塊,若所述第二請求符合預(yù)設(shè)條件,用于結(jié)束所述第一請求,若所述第二請求不 符合預(yù)設(shè)條件,用于執(zhí)行所述第一請求。16.如權(quán)利要求15所述的事務(wù)處理裝置,其特征在于,所述預(yù)設(shè)條件為:第二請求在處理中。
【文檔編號】G06F17/30GK105989133SQ201510087926
【公開日】2016年10月5日
【申請日】2015年2月25日
【發(fā)明人】胡紅梅
【申請人】阿里巴巴集團(tuán)控股有限公司