本發(fā)明涉及計(jì)算機(jī),尤其涉及一種數(shù)據(jù)處理的方法和裝置。
背景技術(shù):
1、針對(duì)訂單調(diào)用庫存系統(tǒng)的高并發(fā)場(chǎng)景,數(shù)據(jù)庫的行鎖資源競(jìng)爭(zhēng),會(huì)導(dǎo)致接口吞吐量降低,影響庫存系統(tǒng)的接單性能。
2、相關(guān)技術(shù)中,將同步庫存處理轉(zhuǎn)異步處理,通過控制異步任務(wù)的流量速度來避免降低接口吞吐量。然而,異步任務(wù)的流量速度難以判斷,且異步任務(wù)處理時(shí)還是需要占用多行數(shù)據(jù)庫資源,降低數(shù)據(jù)庫更新效率。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明實(shí)施例提供一種數(shù)據(jù)處理的方法和裝置,能夠根據(jù)訂單處理請(qǐng)求中的訂單明細(xì)生成臨時(shí)流水?dāng)?shù)據(jù),并寫入臨時(shí)流水表中,通過對(duì)臨時(shí)流水表中具有相同物品標(biāo)識(shí)的臨時(shí)流水?dāng)?shù)據(jù)進(jìn)行合并后進(jìn)行數(shù)據(jù)庫的更新,能夠有效控制數(shù)據(jù)庫行鎖資源的占用釋放,提升了數(shù)據(jù)庫更新的效率。
2、為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種數(shù)據(jù)處理的方法,包括:
3、接收訂單處理請(qǐng)求,所述訂單處理請(qǐng)求包括訂單明細(xì);所述訂單明細(xì)包括一個(gè)或多個(gè)物品標(biāo)識(shí);
4、根據(jù)所述訂單明細(xì)確定每個(gè)所述物品標(biāo)識(shí)的臨時(shí)流水?dāng)?shù)據(jù),將所述臨時(shí)流水?dāng)?shù)據(jù)寫入臨時(shí)流水表中;
5、從所述臨時(shí)流水表中獲取具有相同物品標(biāo)識(shí)的各個(gè)臨時(shí)流水?dāng)?shù)據(jù),根據(jù)所述各個(gè)臨時(shí)流水?dāng)?shù)據(jù)生成庫存變更請(qǐng)求;
6、根據(jù)所述庫存變更請(qǐng)求更新數(shù)據(jù)庫中所述相同物品標(biāo)識(shí)的庫存量。
7、可選地,所述訂單明細(xì)包括訂單類型,根據(jù)所述訂單明細(xì)確定每個(gè)所述物品標(biāo)識(shí)的臨時(shí)流水?dāng)?shù)據(jù)之前,還包括:
8、確定所述訂單類型為指示庫存增加的類型。
9、可選地,所述訂單明細(xì)包括訂單類型和每個(gè)物品標(biāo)識(shí)的數(shù)量;根據(jù)所述訂單明細(xì)確定每個(gè)所述物品標(biāo)識(shí)的臨時(shí)流水?dāng)?shù)據(jù)之前,還包括:
10、所述訂單類型為指示庫存扣減的類型,確定庫存緩存中每個(gè)所述物品標(biāo)識(shí)的庫存量大于等于所述訂單明細(xì)中該物品標(biāo)識(shí)的數(shù)量。
11、可選地,所述訂單明細(xì)包括訂單標(biāo)識(shí)、訂單類型和每個(gè)物品標(biāo)識(shí)的數(shù)量;根據(jù)所述訂單明細(xì)確定每個(gè)所述物品標(biāo)識(shí)的臨時(shí)流水?dāng)?shù)據(jù),包括:
12、根據(jù)所述訂單類型和所述物品標(biāo)識(shí)的數(shù)量確定所述物品標(biāo)識(shí)的庫存變更量;
13、根據(jù)所述訂單標(biāo)識(shí)、訂單類型以及所述物品標(biāo)識(shí)的庫存變更量,生成所述物品標(biāo)識(shí)的臨時(shí)流水?dāng)?shù)據(jù)。
14、可選地,所述臨時(shí)流水?dāng)?shù)據(jù)包括所述物品標(biāo)識(shí)的庫存變更量;根據(jù)所述各個(gè)臨時(shí)流水?dāng)?shù)據(jù)生成庫存變更請(qǐng)求,包括:
15、將所述各個(gè)臨時(shí)流水?dāng)?shù)據(jù)中所述相同物品標(biāo)識(shí)的庫存變更量進(jìn)行加和,得到所述相同物品標(biāo)識(shí)的庫存變更量總和;
16、根據(jù)所述相同物品標(biāo)識(shí)的庫存變更量總和生成所述庫存變更請(qǐng)求。
17、可選地,根據(jù)所述庫存變更請(qǐng)求更新數(shù)據(jù)庫中所述相同物品標(biāo)識(shí)的庫存量之后,還包括:
18、根據(jù)所述數(shù)據(jù)庫中所述相同物品標(biāo)識(shí)的更新前和更新后的庫存量以及所述各個(gè)臨時(shí)流水?dāng)?shù)據(jù),生成與每個(gè)所述臨時(shí)流水?dāng)?shù)據(jù)對(duì)應(yīng)的永久流水?dāng)?shù)據(jù)。
19、可選地,根據(jù)所述庫存變更請(qǐng)求更新數(shù)據(jù)庫中所述相同物品標(biāo)識(shí)的庫存量之前,還包括:
20、確定預(yù)設(shè)時(shí)間內(nèi)針對(duì)所述相同物品標(biāo)識(shí)的庫存變更請(qǐng)求的數(shù)量不超過限流閾值;
21、響應(yīng)于預(yù)設(shè)時(shí)間內(nèi)針對(duì)所述相同物品標(biāo)識(shí)的庫存變更請(qǐng)求的數(shù)量超過所述限流閾值,使所述數(shù)據(jù)庫拒絕所述庫存變更請(qǐng)求。
22、根據(jù)本發(fā)明實(shí)施例的再一個(gè)方面,提供了一種數(shù)據(jù)處理的裝置,包括:
23、接收模塊,接收訂單處理請(qǐng)求,所述訂單處理請(qǐng)求包括訂單明細(xì);所述訂單明細(xì)包括一個(gè)或多個(gè)物品標(biāo)識(shí);
24、確定模塊,根據(jù)所述訂單明細(xì)確定每個(gè)所述物品標(biāo)識(shí)的臨時(shí)流水?dāng)?shù)據(jù),將所述臨時(shí)流水?dāng)?shù)據(jù)寫入臨時(shí)流水表中;
25、生成模塊,從所述臨時(shí)流水表中獲取具有相同物品標(biāo)識(shí)的各個(gè)臨時(shí)流水?dāng)?shù)據(jù),根據(jù)所述各個(gè)臨時(shí)流水?dāng)?shù)據(jù)生成庫存變更請(qǐng)求;
26、更新模塊,根據(jù)所述庫存變更請(qǐng)求更新數(shù)據(jù)庫中所述相同物品標(biāo)識(shí)的庫存量。
27、根據(jù)本發(fā)明實(shí)施例的另一個(gè)方面,提供了一種電子設(shè)備,包括:
28、一個(gè)或多個(gè)處理器;
29、存儲(chǔ)裝置,用于存儲(chǔ)一個(gè)或多個(gè)程序,
30、當(dāng)所述一個(gè)或多個(gè)程序被所述一個(gè)或多個(gè)處理器執(zhí)行,使得所述一個(gè)或多個(gè)處理器實(shí)現(xiàn)本發(fā)明提供的數(shù)據(jù)處理的方法。
31、根據(jù)本發(fā)明實(shí)施例的還一個(gè)方面,提供了一種計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)本發(fā)明提供的數(shù)據(jù)處理的方法。
32、上述發(fā)明中的一個(gè)實(shí)施例具有如下優(yōu)點(diǎn)或有益效果:本發(fā)明實(shí)施例的數(shù)據(jù)處理的方法,在接收到訂單處理請(qǐng)求后,根據(jù)訂單處理請(qǐng)求中的訂單明細(xì)確定每個(gè)物品標(biāo)識(shí)的臨時(shí)流水?dāng)?shù)據(jù),并將臨時(shí)流水?dāng)?shù)據(jù)寫入臨時(shí)流水表中,從臨時(shí)流水表中獲取相同物品標(biāo)識(shí)的各個(gè)臨時(shí)流水?dāng)?shù)據(jù)并合并,生成庫存變更請(qǐng)求,以根據(jù)庫存變更請(qǐng)求更新數(shù)據(jù)庫中相同物品標(biāo)識(shí)的庫存量。該方法將訂單維度更新庫存的調(diào)用,記錄為物品標(biāo)識(shí)維度的臨時(shí)流水?dāng)?shù)據(jù),通過分析合并具有相同物品標(biāo)識(shí)的臨時(shí)流水?dāng)?shù)據(jù),控制數(shù)據(jù)庫行鎖資源的占用釋放,克服了現(xiàn)有技術(shù)中因數(shù)據(jù)庫行鎖資源競(jìng)爭(zhēng)導(dǎo)致的異步任務(wù)積壓,減少了多行資源的互相等待,降低了對(duì)數(shù)據(jù)庫的調(diào)用次數(shù)和調(diào)用頻率,提升數(shù)據(jù)庫更新的效率;通過庫存緩存實(shí)現(xiàn)對(duì)庫存扣減操作進(jìn)行校驗(yàn),防止出現(xiàn)負(fù)庫存導(dǎo)致的超賣問題。
33、上述的非慣用的可選方式所具有的進(jìn)一步效果將在下文中結(jié)合具體實(shí)施方式加以說明。
1.一種數(shù)據(jù)處理的方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述訂單明細(xì)包括訂單類型,根據(jù)所述訂單明細(xì)確定每個(gè)所述物品標(biāo)識(shí)的臨時(shí)流水?dāng)?shù)據(jù)之前,還包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述訂單明細(xì)包括訂單類型和每個(gè)物品標(biāo)識(shí)的數(shù)量;根據(jù)所述訂單明細(xì)確定每個(gè)所述物品標(biāo)識(shí)的臨時(shí)流水?dāng)?shù)據(jù)之前,還包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述訂單明細(xì)包括訂單標(biāo)識(shí)、訂單類型和每個(gè)物品標(biāo)識(shí)的數(shù)量;根據(jù)所述訂單明細(xì)確定每個(gè)所述物品標(biāo)識(shí)的臨時(shí)流水?dāng)?shù)據(jù),包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述臨時(shí)流水?dāng)?shù)據(jù)包括所述物品標(biāo)識(shí)的庫存變更量;根據(jù)所述各個(gè)臨時(shí)流水?dāng)?shù)據(jù)生成庫存變更請(qǐng)求,包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,根據(jù)所述庫存變更請(qǐng)求更新數(shù)據(jù)庫中所述相同物品標(biāo)識(shí)的庫存量之后,還包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述庫存變更請(qǐng)求更新數(shù)據(jù)庫中所述相同物品標(biāo)識(shí)的庫存量之前,還包括:
8.一種數(shù)據(jù)處理的裝置,其特征在于,包括:
9.一種電子設(shè)備,其特征在于,包括:
10.一種計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1-7中任一所述的方法。