用于賬務(wù)交易的數(shù)據(jù)表更新的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種用于賬務(wù)交易的數(shù)據(jù)表更新的方法及系統(tǒng),所述方法包括:接收用戶提交的訂單,其中所述訂單包括:交易對象的交易量;從非關(guān)系型數(shù)據(jù)庫中讀取所述交易對象的庫存量;判斷讀取的庫存量是否大于所述交易量;若所述庫存量大于所述交易量,則基于所述交易量更新所述交易對象的庫存量,并向所述用戶反饋用于對所述訂單進行賬務(wù)性操作的頁面;經(jīng)預定間隔時間后,識別所述用戶是否通過所述頁面完成所述賬務(wù)性操作;若完成所述賬務(wù)性操作,則根據(jù)所述訂單更新關(guān)系型數(shù)據(jù)庫中存儲的所述用戶的賬務(wù)數(shù)據(jù)表。實施本發(fā)明,可以在提高用戶響應速度的同時保證數(shù)據(jù)的一致性。
【專利說明】
用于賬務(wù)交易的數(shù)據(jù)表更新的方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及通信領(lǐng)域,更為具體而言,涉及用于賬務(wù)交易的數(shù)據(jù)表更新的方法及系統(tǒng)。【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)金融的發(fā)展,為了搶占互聯(lián)網(wǎng)用戶,當前互聯(lián)網(wǎng)產(chǎn)品越來越關(guān)注用戶的體驗度,又由于金融業(yè)對于數(shù)據(jù)一致性的極高要求。因此,如何做到在保證數(shù)據(jù)一致性的同時,加快高并發(fā)請求下的響應速度是所有金融業(yè)互聯(lián)網(wǎng)產(chǎn)品研發(fā)人員所面臨的技術(shù)難題。
[0003]傳統(tǒng)的金融業(yè)互聯(lián)網(wǎng)產(chǎn)品的開發(fā)一直使用以oracle數(shù)據(jù)庫(一種由甲骨文公司研發(fā)的關(guān)系型數(shù)據(jù)庫)為代表的數(shù)據(jù)庫。然而,雖然oracle數(shù)據(jù)庫在數(shù)據(jù)一致性、事務(wù)支持等方面具有天然的優(yōu)勢,但由于oracle數(shù)據(jù)庫的響應延遲較大,因此,oracle數(shù)據(jù)庫在應對高并發(fā)請求方面一直受限,在進行秒殺、搶紅包等對響應速度有很高要求的應用場景下,嚴重影響用戶的體驗度。
【發(fā)明內(nèi)容】
[0004]為解決上述技術(shù)問題,本發(fā)明提供一種用于賬務(wù)交易的數(shù)據(jù)表更新的方法及系統(tǒng)。
[0005]—方面,本發(fā)明的實施方式提供了一種用于賬務(wù)交易的數(shù)據(jù)表更新的方法,所述方法包括:
[0006]接收用戶提交的訂單,其中所述訂單包括:交易對象的交易量;
[0007]從非關(guān)系型數(shù)據(jù)庫中讀取所述交易對象的庫存量;
[0008]判斷讀取的庫存量是否大于所述交易量;
[0009]若所述庫存量大于所述交易量,則基于所述交易量更新所述交易對象的庫存量, 并向所述用戶反饋用于對所述訂單進行賬務(wù)性操作的頁面;
[0010]經(jīng)預定間隔時間后,識別所述用戶是否通過所述頁面完成所述賬務(wù)性操作;[〇〇11]若完成所述賬務(wù)性操作,則根據(jù)所述訂單更新關(guān)系型數(shù)據(jù)庫中存儲的所述用戶的賬務(wù)數(shù)據(jù)表。
[0012]另一方面,本發(fā)明實施方式提供了一種用于賬務(wù)交易的數(shù)據(jù)表更新的系統(tǒng),所述系統(tǒng)包括:
[0013]接收模塊,用于接收用戶提交的訂單,其中所述訂單包括:交易對象的交易量;
[0014]讀取模塊,用于從非關(guān)系型數(shù)據(jù)庫中讀取所述接收模塊接收的訂單的交易對象的庫存量;
[0015]判斷模塊,用于判斷所述讀取模塊讀取的庫存量是否大于所述交易量;
[0016]更新及反饋模塊,用于執(zhí)行下述處理:在所述判斷模塊判斷所述庫存量大于所述交易量的情況下,基于所述交易量更新所述交易對象的庫存量,并向所述用戶反饋用于對所述訂單進行賬務(wù)性操作的頁面;
[0017]第一識別模塊,用于執(zhí)行下述處理:經(jīng)預定間隔時間后,識別所述用戶是否通過所述更新及反饋模塊反饋的頁面完成所述賬務(wù)性操作;
[0018]更新模塊,用于執(zhí)行下述處理:在所述第一識別模塊識別為完成所述賬務(wù)性操作的情形下,根據(jù)所述訂單更新關(guān)系型數(shù)據(jù)庫中存儲的所述用戶的賬務(wù)數(shù)據(jù)表。
[0019]實施本發(fā)明提供的用于賬務(wù)交易的數(shù)據(jù)表更新的方法及系統(tǒng),將非關(guān)系型數(shù)據(jù)庫作為“熱點數(shù)據(jù)”(指高并發(fā)讀取的數(shù)據(jù),例如交易對象的庫存量)的存儲容器,可以提高“熱點數(shù)據(jù)”的讀寫速度,減少用戶響應時間;同時,將關(guān)系型數(shù)據(jù)作為賬務(wù)數(shù)據(jù)表的存儲容器, 可以保證賬務(wù)數(shù)據(jù)的一致性。從而,在提高用戶響應速度的同時保證數(shù)據(jù)的一致性。【附圖說明】
[0020]圖1是根據(jù)本發(fā)明實施方式的一種用于賬務(wù)交易的數(shù)據(jù)表更新的方法的流程圖;
[0021]圖2是根據(jù)本發(fā)明實施方式的一種用于賬務(wù)交易的數(shù)據(jù)表更新的系統(tǒng)的結(jié)構(gòu)示意圖?!揪唧w實施方式】[〇〇22]為使本發(fā)明的實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明作進一步地詳細描述。
[0023]圖1是根據(jù)本發(fā)明實施方式的一種用于賬務(wù)交易的數(shù)據(jù)表更新的方法的流程圖。 參見圖1,所述方法包括:[〇〇24]S100:接收用戶提交的訂單。
[0025]其中,所述訂單例如可以包括:交易對象的標識符以及交易量等。[〇〇26]S200:從非關(guān)系型數(shù)據(jù)庫中讀取所述訂單的交易對象的庫存量。
[0027]在本發(fā)明的一些實施方式中,所述非關(guān)系型數(shù)據(jù)庫例如可以包括分布式鍵值數(shù)據(jù)庫。
[0028]在本發(fā)明的一些實施方式中,所述分布式鍵值數(shù)據(jù)庫存儲在內(nèi)存中。[〇〇29]S300:判斷讀取的庫存量是否大于所述訂單中的交易量,若否,則執(zhí)行S400,若是,則執(zhí)行S500。
[0030]S400:向所述用戶反饋失敗信息,并結(jié)束當前流程。
[0031]S500:基于所述交易量更新所述交易對象的庫存量,并向所述用戶反饋用于對所述訂單進行賬務(wù)性操作的頁面。
[0032]S600:經(jīng)預定間隔時間后,識別所述用戶是否通過所述頁面完成所述賬務(wù)性操作, 若是,則執(zhí)行S700,若否,則執(zhí)行S800。
[0033]S700:根據(jù)所述訂單更新關(guān)系型數(shù)據(jù)庫中存儲的所述用戶的賬務(wù)數(shù)據(jù)表,并結(jié)束當前流程。
[0034]在本發(fā)明的一些實施方式中,所述關(guān)系型數(shù)據(jù)庫為oracle數(shù)據(jù)庫。[〇〇35]S800:識別當前時刻距離反饋所述頁面的時刻所經(jīng)過的時間是否大于預定等待時間,若是,則執(zhí)行S900,若否,則返回執(zhí)行S600。[〇〇36]其中,所述預定等待時間大于所述預定間隔時間,例如,所述預定間隔時間為1分鐘,所述預定等待時間為40分鐘,當然,本領(lǐng)域的技術(shù)人員也可以根據(jù)實際需要,對所述預定等待時間以及預定間隔時間進行其他合理設(shè)置。[〇〇37]S900:取消所述訂單,并結(jié)束當前流程。
[0038]當然,本發(fā)明的實施方式不限于此,本領(lǐng)域的技術(shù)人員也可以在S600的識別結(jié)果為未完成所述賬務(wù)性操作的情形下,直接執(zhí)行上述處理S900。[〇〇39]下面結(jié)合具體例子,對本發(fā)明的實施方式進行詳細說明。[〇〇4〇]步驟1:接收用戶提交的訂單。
[0041]其中,所述訂單包括:交易對象的標識符以及交易量。
[0042]步驟2:從coherence數(shù)據(jù)庫(一種分布式鍵值數(shù)據(jù)庫)中讀取所述交易對象的庫存量。[0〇43]其中,coherence用于保存“熱點數(shù)據(jù)”,例如,交易對象的存庫量。由于coherence 數(shù)據(jù)庫存儲在內(nèi)存中,并且內(nèi)存的訪問速度非???,可以達到百分之一毫秒級別,因此能夠提高“熱點數(shù)據(jù)”的讀寫速度,減少用戶響應時間。[〇〇44]步驟3:判斷讀取的庫存量是否大于所述訂單中的交易量,若所述庫存量小于所述交易量,則執(zhí)行步驟4,若所述庫存量大于所述交易量,則執(zhí)行步驟5。
[0045]步驟4:向所述用戶反饋處理失敗信息,并結(jié)束當前流程。
[0046]步驟5:通過coherence的并行請求串行化接口將該訂單加入等待隊列中。[0〇47] 步驟6:當處理到所述訂單時,將所述訂單存入到cassandra數(shù)據(jù)庫(一種列式數(shù)據(jù)庫)中,并分配相應的訂單號。[〇〇48]由于coherence數(shù)據(jù)庫是鍵值數(shù)據(jù)庫,因此存放的數(shù)據(jù)結(jié)構(gòu)比較簡單,并且不能持久化到硬盤中,并且內(nèi)存的價格高昂、容量有限,所以需要將訂單存入到cassandra數(shù)據(jù)庫中,另外,cassandra數(shù)據(jù)庫也可以根據(jù)需要對數(shù)據(jù)實現(xiàn)事務(wù)控制。
[0049]步驟7:基于所述訂單中的交易量,更新所述交易對象的庫存量,并向所述用戶反饋用于對所述訂單進行賬務(wù)性操作的頁面。
[0050]步驟8:經(jīng)預定間隔時間(例如1分鐘,當然本領(lǐng)域的技術(shù)人員也可以根據(jù)實際需要,對該預定間隔時間進行其他合理設(shè)置)后,識別所述用戶是否通過所述頁面完成所述賬務(wù)性操作,若完成所述賬務(wù)性操作,則執(zhí)行步驟9,若未完成所述賬務(wù)性操作,則執(zhí)行步驟 10。
[0051]步驟9:根據(jù)所述訂單更新oracle數(shù)據(jù)庫中所述用戶的賬務(wù)數(shù)據(jù)表,并結(jié)束當前流程。
[0052]步驟10:識別當前時刻距離反饋所述頁面的時刻所經(jīng)歷的時間是否大于預定等待時間(例如40分鐘,當然本領(lǐng)域的技術(shù)人員也可以根據(jù)實際需要,對該預定時間進行其他合理設(shè)置),若所述經(jīng)過的時間大于所述預定等待時間,則執(zhí)行步驟11,若所述間隔時間小于所述預定等待時間,則返回執(zhí)行步驟8。
[0053]步驟11:取消所述訂單,并結(jié)束當前流程。[〇〇54]圖2是根據(jù)本發(fā)明實施方式的一種用于賬務(wù)交易的數(shù)據(jù)表更新的系統(tǒng)的結(jié)構(gòu)示意圖。參見圖2,所述系統(tǒng)1000包括:接收模塊100、讀取模塊200、判斷模塊300、更新及反饋模塊400、第一識別模塊500、以及更新模塊600,具體地:
[0055]接收模塊100用于接收用戶提交的訂單。
[0056]其中,所述訂單例如可以包括交易對象的標識符以及交易量等。
[0057]讀取模塊200用于從非關(guān)系型數(shù)據(jù)庫中讀取接收模塊100接收的訂單的交易對象的庫存量。
[0058]在本發(fā)明的一些實施方式中,所述非關(guān)系型數(shù)據(jù)庫例如可以包括分布式鍵值數(shù)據(jù)庫。
[0059]在本發(fā)明的一些實施方式中,所述分布式鍵值數(shù)據(jù)庫存儲在內(nèi)存中。
[0060]判斷模塊300用于判斷讀取模塊200讀取的庫存量是否大于所述交易量。[〇〇61]更新及反饋模塊400用于執(zhí)行下述處理:在判斷模塊300判斷所述庫存量大于所述交易量的情況下,基于所述交易量更新所述交易對象的庫存量,并向所述用戶反饋用于對所述訂單進行賬務(wù)性操作的頁面。[〇〇62]第一識別模塊500用于執(zhí)行下述處理:經(jīng)預定間隔時間后,識別所述用戶是否通過更新及反饋模塊400反饋的頁面完成所述賬務(wù)性操作。[〇〇63]更新模塊600用于執(zhí)行下述處理:在第一識別模塊500識別為完成所述賬務(wù)性操作的情形下,根據(jù)所述訂單更新關(guān)系型數(shù)據(jù)庫中存儲的所述用戶的賬務(wù)數(shù)據(jù)表。
[0064]在本發(fā)明的一些實施方式中,所述關(guān)系型數(shù)據(jù)庫為oracle數(shù)據(jù)庫。
[0065]在本發(fā)明的一些實施方式中,該系統(tǒng)1000還可以包括第二識別模塊以及訂單取消模塊,具體地,該第二識別模塊用于在第一識別模塊500識別為未完成所述賬務(wù)性操作的情形下,識別當前時刻距離反饋所述頁面的時刻所經(jīng)過的時間是否大于預定等待時間;該訂單取消模塊用于執(zhí)行下述處理:在該第二識別模塊識別為所述經(jīng)過的時間大于所述預定等待時間的情形下,取消所述訂單。
[0066]其中,所述預定等待時間大于所述預定間隔時間,例如,所述預定間隔時間為1分鐘,所述預定等待時間為40分鐘,當然,本領(lǐng)域的技術(shù)人員也可以根據(jù)實際需要,對所述預定等待時間以及預定間隔時間進行其他合理設(shè)置。[〇〇67]實施本發(fā)明提供的用于賬務(wù)交易的數(shù)據(jù)表更新的方法及系統(tǒng),將非關(guān)系型數(shù)據(jù)庫作為“熱點數(shù)據(jù)”(指高并發(fā)讀取的數(shù)據(jù),例如交易對象的庫存量)的存儲容器,可以提高“熱點數(shù)據(jù)”的讀寫速度,減少用戶響應時間;同時,將關(guān)系型數(shù)據(jù)作為賬務(wù)數(shù)據(jù)表的存儲容器, 可以保證賬務(wù)數(shù)據(jù)的一致性。從而,在提高用戶響應速度的同時保證數(shù)據(jù)的一致性。
[0068]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件結(jié)合硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案對【背景技術(shù)】做出貢獻的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,智能手機或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
[0069]本發(fā)明說明書中使用的術(shù)語和措辭僅僅為了舉例說明,并不意味構(gòu)成限定。本領(lǐng)域技術(shù)人員應當理解,在不脫離所公開的實施方式的基本原理的前提下,對上述實施方式中的各細節(jié)可進行各種變化。因此,本發(fā)明的范圍只由權(quán)利要求確定,在權(quán)利要求中,除非另有說明,所有的術(shù)語應按最寬泛合理的意思進行理解。
【主權(quán)項】
1.一種用于賬務(wù)交易的數(shù)據(jù)表更新的方法,其特征在于,所述方法包括:接收用戶提交的訂單,其中所述訂單包括:交易對象的交易量;從非關(guān)系型數(shù)據(jù)庫中讀取所述交易對象的庫存量;判斷讀取的庫存量是否大于所述交易量;若所述庫存量大于所述交易量,則基于所述交易量更新所述交易對象的庫存量,并向 所述用戶反饋用于對所述訂單進行賬務(wù)性操作的頁面;經(jīng)預定間隔時間后,識別所述用戶是否通過所述頁面完成所述賬務(wù)性操作;若完成所述賬務(wù)性操作,則根據(jù)所述訂單更新關(guān)系型數(shù)據(jù)庫中存儲的所述用戶的賬務(wù) 數(shù)據(jù)表。2.如權(quán)利要求1所述的方法,其特征在于,所述非關(guān)系型數(shù)據(jù)庫包括:分布式鍵值數(shù)據(jù)庫。3.如權(quán)利要求2所述的方法,其特征在于,所述分布式鍵值數(shù)據(jù)庫存儲在內(nèi)存中。4.如權(quán)利要求1至3中任一項所述的方法,其特征在于,所述方法還包括:若未完成所述賬務(wù)性操作,則識別當前時刻距離反饋所述頁面的時刻所經(jīng)過的時間是 否大于預定等待時間,其中,所述預定等待時間大于所述預定間隔時間;若所述經(jīng)過的時間大于所述預定等待時間,則取消所述訂單。5.—種用于賬務(wù)交易的數(shù)據(jù)表更新的系統(tǒng),其特征在于,所述系統(tǒng)包括:接收模塊,用于接收用戶提交的訂單,其中所述訂單包括:交易對象的交易量;讀取模塊,用于從非關(guān)系型數(shù)據(jù)庫中讀取所述接收模塊接收的訂單的交易對象的庫存 量;判斷模塊,用于判斷所述讀取模塊讀取的庫存量是否大于所述交易量;更新及反饋模塊,用于執(zhí)行下述處理:在所述判斷模塊判斷所述庫存量大于所述交易 量的情況下,基于所述交易量更新所述交易對象的庫存量,并向所述用戶反饋用于對所述 訂單進行賬務(wù)性操作的頁面;第一識別模塊,用于執(zhí)行下述處理:經(jīng)預定間隔時間后,識別所述用戶是否通過所述更 新及反饋模塊反饋的頁面完成所述賬務(wù)性操作;更新模塊,用于執(zhí)行下述處理:在所述第一識別模塊識別為完成所述賬務(wù)性操作的情 形下,根據(jù)所述訂單更新關(guān)系型數(shù)據(jù)庫中存儲的所述用戶的賬務(wù)數(shù)據(jù)表。6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述非關(guān)系型數(shù)據(jù)庫包括:分布式鍵值數(shù)據(jù)庫。7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述分布式鍵值數(shù)據(jù)庫存儲在內(nèi)存中。8.如權(quán)利要求5至7中任一項所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括:第二識別模塊,用于執(zhí)行下述處理:在所述第一識別模塊識別為未完成所述賬務(wù)性操 作的情形下,識別當前時刻距離反饋所述頁面的時刻所經(jīng)過的時間是否大于預定等待時 間,其中,所述預定等待時間大于所述預定間隔時間;訂單取消模塊,用于執(zhí)行下述處理:在所述第二識別模塊識別為所述經(jīng)過的時間大于 所述預定等待時間的情形下,取消所述訂單。
【文檔編號】G06F17/30GK106021597SQ201610397488
【公開日】2016年10月12日
【申請日】2016年6月7日
【發(fā)明人】王林彬, 張鵬, 趙素華, 邵培興, 張司閣, 郝剛
【申請人】中國建設(shè)銀行股份有限公司