本發明涉及數據處理,具體涉及一種熱點賬戶的記賬處理方法及裝置。
背景技術:
1、當核心業務系統中出現大量的業務交易需要對同一個賬戶記錄時,單一賬戶會進行逐筆入賬,更新數據庫。
2、當系統中出現大量的業務交易需要更新數據庫中同一個賬戶記錄時,由于賬戶的單一性,在數據庫更新時,為滿足數據庫事務的一致性,會進行鎖表操作,在大并發場景下,線程的阻塞等待耗時會很長,造成業務側大量的交易失敗情況發生,影響記賬效率。
3、現有技術存在如下缺點:
4、1.高并發情況下,當多個賬戶之間互相轉賬時,可能會出現死鎖問題。
5、即:a賬戶向b賬戶轉賬,同時b賬戶向a賬戶轉賬,兩個轉賬請求并發,系統對每個轉賬請求都會更新a、b余額,這兩個更新需要在一個事務里,正常流程為2個線程分別先更新a,再更新b,以及先更新b,再更新a,線程1更新完a后會等待b的鎖,不提交事務,線程2更新完b后會等待a的鎖,不提交事務,這樣兩個線程互相等待鎖,造成死鎖。
6、2.高并發情況下,同一賬戶操作瓶頸。
7、對于高并發場景下,秒殺、發紅包等場景,對同一賬戶高頻讀取鎖表更新余額,造成業務請求排隊,大量請求失敗。
技術實現思路
1、針對現有技術中的問題,本發明實施例提供一種熱點賬戶的記賬處理方法及裝置,能夠至少部分地解決現有技術中存在的問題。
2、一方面,本發明提出一種熱點賬戶的記賬處理方法,包括:
3、獲取當前高并發場景,若確定當前高并發場景為第一高并發場景,則采用定時批量作業的第一作業方式對熱點賬戶進行記賬處理;
4、其中,所述第一高并發場景為可按照預設固定時長反饋記賬處理結果的場景;
5、若確定當前高并發場景為第二高并發場景,則采用熱點賬戶拆分子賬號的第二作業方式對熱點賬戶進行記賬處理;
6、其中,所述第二高并發場景為可提前反饋記賬處理結果的場景。
7、其中,所述采用定時批量作業的第一作業方式對熱點賬戶進行記賬處理,包括:
8、新建交易明細登記簿,在所述交易明細登記簿中登記賬務明細,設置賬務明細記錄的狀態為未入賬,并鎖定賬務狀態;
9、在預設定時批量作業啟動時刻掃描未入賬狀態的賬務明細記錄,計算出總金額,在達到所述預設固定時長時一次性對與所述總金額對應的未入賬狀態的賬務明細記錄進行記賬處理,設置賬務明細記錄的狀態為已入賬,并解鎖賬務狀態。
10、其中,所述在達到所述預設固定時長時一次性對與所述總金額對應的未入賬狀態的賬務明細記錄進行記賬處理,包括:
11、在達到所述預設固定時長時一次性對與所述總金額對應的未入賬狀態的賬務明細記錄進行入賬處理或出賬處理。
12、其中,所述采用熱點賬戶拆分子賬戶的第二作業方式對熱點賬戶進行記賬處理,包括:
13、按照預先分拆的與所述熱點賬戶對應的多個子賬戶,分別對訪問原熱點賬戶的記賬處理請求進行記賬處理;
14、其中,多個子賬戶分別對應的賬戶金額之和等于所述熱點賬戶的賬戶金額。
15、其中,所述熱點賬戶的記賬處理方法還包括:
16、若確定存在余額不足的目標子賬戶,則暫停由所述目標子賬戶反饋記賬結果;
17、在以暫停時刻為時間起點的預設時長內,獲取與每個子賬戶分別對應的賬戶金額,按照賬戶金額由多到少的順序對每個子賬戶排序;
18、按照排序順序依次遍歷排序靠前的n個子賬戶,從n個子賬戶中的每個賬戶中分別提取預設占比的賬戶金額,并補充至所述目標子賬戶中。
19、其中,所述熱點賬戶的記賬處理方法還包括:
20、若確定存在余額不足的目標子賬戶,則從預設資金池中預支等于余額不足金額的資金至所述目標子賬戶。
21、其中,預先分拆與所述熱點賬戶對應的多個子賬戶,包括:
22、獲取所述第二高并發場景中的單位時間內的并發請求數,根據并發請求數確定多個子賬戶數量;
23、根據多個子賬戶數量均分所述熱點賬戶的賬戶金額至每個子賬戶中。
24、其中,所述熱點賬戶的記賬處理方法還包括:
25、若確定當前高并發場景為第三高并發場景,則采用異步緩沖入賬作業的第三作業方式對熱點賬戶進行記賬處理;
26、其中,所述第三高并發場景為高低并發時間間隔低于預設時間間隔的場景。
27、一方面,本發明提出一種熱點賬戶的記賬處理裝置,包括:
28、第一記賬處理單元,用于獲取當前高并發場景,若確定當前高并發場景為第一高并發場景,則采用定時批量作業的第一作業方式對熱點賬戶進行記賬處理;
29、其中,所述第一高并發場景為可按照預設固定時長反饋記賬處理結果的場景;
30、第二記賬處理單元,用于若確定當前高并發場景為第二高并發場景,則采用熱點賬戶拆分子賬號的第二作業方式對熱點賬戶進行記賬處理;
31、其中,所述第二高并發場景為可提前反饋記賬處理結果的場景。
32、再一方面,本發明實施例提供一種電子設備,包括:處理器、存儲器和總線,其中,
33、所述處理器和所述存儲器通過所述總線完成相互間的通信;
34、所述存儲器存儲有可被所述處理器執行的程序指令,所述處理器調用所述程序指令能夠執行如下方法:
35、獲取當前高并發場景,若確定當前高并發場景為第一高并發場景,則采用定時批量作業的第一作業方式對熱點賬戶進行記賬處理;
36、其中,所述第一高并發場景為可按照預設固定時長反饋記賬處理結果的場景;
37、若確定當前高并發場景為第二高并發場景,則采用熱點賬戶拆分子賬號的第二作業方式對熱點賬戶進行記賬處理;
38、其中,所述第二高并發場景為可提前反饋記賬處理結果的場景。
39、本發明實施例提供一種非暫態計算機可讀存儲介質,包括:
40、所述非暫態計算機可讀存儲介質存儲計算機指令,所述計算機指令使所述計算機執行如下方法:
41、獲取當前高并發場景,若確定當前高并發場景為第一高并發場景,則采用定時批量作業的第一作業方式對熱點賬戶進行記賬處理;
42、其中,所述第一高并發場景為可按照預設固定時長反饋記賬處理結果的場景;
43、若確定當前高并發場景為第二高并發場景,則采用熱點賬戶拆分子賬號的第二作業方式對熱點賬戶進行記賬處理;
44、其中,所述第二高并發場景為可提前反饋記賬處理結果的場景。
45、本發明實施例提供的熱點賬戶的記賬處理方法及裝置,獲取當前高并發場景,若確定當前高并發場景為第一高并發場景,則采用定時批量作業的第一作業方式對熱點賬戶進行記賬處理;其中,所述第一高并發場景為可按照預設固定時長反饋記賬處理結果的場景;若確定當前高并發場景為第二高并發場景,則采用熱點賬戶拆分子賬號的第二作業方式對熱點賬戶進行記賬處理;其中,所述第二高并發場景為可提前反饋記賬處理結果的場景,能夠根據當前高并發場景選擇合理的作業方式,能夠提高熱點賬戶的記賬效率,減少反饋記賬請求的等待時間。