中的扣減值時,將所述扣減記錄單標記為失敗,并將所述變量標記為欠值;
[0118]步驟S503,監(jiān)聽標記為欠值的變量的數(shù)值是否增加;
[0119]步驟S504,當所述標記為欠值的變量的數(shù)值增加時,對標記為失敗的扣減記錄單進行重試扣減;
[0120]步驟S505,當標記為失敗的扣減記錄單全部重試扣減成功時,刪除所述變量的欠值標記。
[0121]其中,步驟S501與步驟SlOl相同。步驟S502中,當所述變量的數(shù)值小于所述扣減請求中的扣減值時,將扣減記錄單標記為失敗,并將所述變量標記為欠值,這樣在步驟S503中,只需監(jiān)聽標記為欠值的變量的數(shù)值是否增加。如果對所有變量進行監(jiān)聽,由于變量數(shù)巨大,監(jiān)聽處理將占據(jù)大量系統(tǒng)資源,如果掃描標記為失敗的扣減記錄單,監(jiān)聽標記為失敗的扣減記錄單對應的變量,由于標記為失敗的扣減記錄單數(shù)非常多,且一個變量下通常有多個標記為失敗的扣減記錄單,會存在對變量重復監(jiān)聽的情況。只監(jiān)聽標記為欠值的變量的數(shù)值是否增加,可以大大減少系統(tǒng)監(jiān)聽處理占據(jù)的系統(tǒng)資源,提高扣減處理效率。所述將變量標記為欠值,可以為在記錄的變量信息中插入標記變量,并設置表示變量是否欠值的標記變量值,例如標記變量為O,則表示所述變量欠值,標記變量為空或其他值,則表示變量未欠值。將變量標記為欠值,也可以使用其他常規(guī)的數(shù)據(jù)庫數(shù)據(jù)標記方法。
[0122]其中,步驟S504與步驟S104相同。步驟S505中,當變量對應的標記為失敗的扣減記錄單全部重試扣減成功,即所有該變量下標記為失敗的扣減記錄單都完成時,刪除所述變量的欠值標記,服務器在該變量再次出現(xiàn)標記為失敗的扣減記錄單前,不再監(jiān)聽該變量的數(shù)值是否增加。
[0123]通過以上的方法實施例的描述,所屬領域的技術人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本申請的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,并存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺智能設備執(zhí)行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:只讀存儲器(R0M)、隨機存取存儲器(RAM)、磁碟或者光盤等各種可以存儲數(shù)據(jù)和程序代碼的介質(zhì)。
[0124]相應于本申請實施例的第一方面,根據(jù)本申請實施例的第二方面,提供一種數(shù)據(jù)庫數(shù)值扣減系統(tǒng)。圖6為本申請一示例性實施例示出的一種數(shù)據(jù)庫數(shù)據(jù)扣減系統(tǒng)的框圖。如圖6所示,所述系統(tǒng)包括:
[0125]扣減請求接收單元U601,用于接收扣減請求;
[0126]扣減記錄單生成單元U602,用于根據(jù)所述扣減請求生成扣減記錄單;
[0127]判斷單元U603,用于判斷所述扣減請求對應的變量的數(shù)值是否大于所述扣減請求中的扣減值;
[0128]扣減記錄單標記單元U604,用于當所述變量的數(shù)值小于所述扣減請求中的扣減值時,將所述扣減記錄單標記為失??;
[0129]監(jiān)聽單元U605,用于監(jiān)聽所述變量的數(shù)值是否增加;
[0130]重試扣減單元U606,用于當所述變量的數(shù)值增加時,對標記為失敗的扣減記錄單進行重試扣減。
[0131]其中,在一種可能的實施方式中,所述重試扣減單元,包括:
[0132]第一判斷子單元,用于判斷當前進行重試扣減的扣減記錄單的扣減值是否小于或等于所述變量的數(shù)值;
[0133]第一執(zhí)行子單元,用于當當前進行重試扣減的扣減記錄單的扣減值小于或等于所述變量的數(shù)值時,完成當前進行重試扣減的扣減記錄單,并將完成的所述扣減記錄單的標記更改為成功;
[0134]第二判斷子單元,用于判斷是否存在下一條標記為失敗的扣減記錄單,
[0135]第二執(zhí)行子單元,用于如果存在下一條標記為失敗的扣減記錄單,將下一條標記為失敗的扣減記錄單作為當前進行重試扣減的扣減記錄單,并返回所述第一判斷子單元,否則,結束重試扣減。
[0136]其中,在另一種可能的實施方式中,所述重試扣減單元,包括:
[0137]差值計算子單元,用于依次計算所述變量的數(shù)值和標記為失敗的扣減記錄單的扣減值的差值;
[0138]第三判斷子單元,用于判斷所述差值是否全部小于O ;
[0139]第三執(zhí)行子單元,用于如果所述差值全部小于0,停止重試扣減,否則,
[0140]如果存在大于或等于O的差值,選取大于或等于O且最小的差值,完成所述差值對應的標記為失敗的扣減記錄單,將完成的標記為失敗的扣減記錄單的標記更改為成功,并返回所述差值計算子單元。
[0141]其中,在又一種可能的實施方式中,所述重試扣減單元,包括:
[0142]差值計算子單元,用于依次計算所述變量的數(shù)值減去標記為失敗的扣減記錄單的扣減值的差值;
[0143]第三判斷子單元,用于判斷所述差值是否全部小于O ;
[0144]第四執(zhí)行子單元,用于如果所述差值全部小于0,停止重試扣減,否則
[0145]如果存在大于或等于O的差值,選取大于或等于O且最小的一個差值,完成所述差值對應的標記為失敗的扣減記錄單,將完成的標記為失敗的扣減記錄單的標記更改為成功;
[0146]新差值計算子單元,用于依次計算所述變量的數(shù)值減去余下的大于或等于O的差值對應的扣減記錄單對應的扣減值,得到新差值;
[0147]第四判斷子單元,用于判斷所述新差值是否全部小于O ;
[0148]第五執(zhí)行子單元,用于如果所述新差值全部小于0,停止重試扣減,否則,
[0149]如果存在大于或等于O的新差值,選取大于或等于O且最小的一個新差值,完成所述新差值對應的標記為失敗的扣減記錄單,將完成的標記為失敗的扣減記錄單的標記更改為成功,并返回所述新差值計算子單元。
[0150]圖7為本申請另一示例性實施例示出的一種數(shù)據(jù)庫數(shù)值扣減系統(tǒng)的框圖。如圖7所示,所述系統(tǒng)包括:
[0151]扣減請求接收單元U701,用于接收扣減請求;
[0152]扣減記錄單生成單元U702,用于根據(jù)所述扣減請求生成扣減記錄單;
[0153]判斷單元U703,用于判斷所述扣減請求對應的變量的數(shù)值是否大于所述扣減請求中的扣減值;
[0154]扣減記錄單標記單元U704,用于當所述變量的數(shù)值小于所述扣減請求中的扣減值時,將所述扣減記錄單標記為失敗;
[0155]變量標記單元U705,用于當所述變量的數(shù)值小于所述扣減請求中的扣減值時,將所述變量標記為欠值;
[0156]監(jiān)聽單元U706,用于監(jiān)聽標記為欠值的變量的數(shù)值是否增加;
[0157]重試扣減單元U707,用于當所述標記為欠值的變量的數(shù)值增加時,對標記為失敗的扣減記錄單進行重試扣減;
[0158]變量標記刪除單元U708,用于當標記為失敗的扣減記錄單全部重試扣減成功時,刪除所述變量的欠值標記。
[0159]為了描述的方便,描述以上系統(tǒng)時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟件和/或硬件中實現(xiàn)。
[0160]本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)或系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的系統(tǒng)及系統(tǒng)實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。本領域普通技術人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
[0161 ] 需要說明的是,在本文中,諸如“第一”和“第二”等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者逆序。而且,術語“包括”、“包含”或