在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/人工智能  Java  Linux/ 查詢訂單價(jià)格后,批量下單,真正扣錢時(shí)機(jī)為接單時(shí),如何保證賬戶余額充足?

查詢訂單價(jià)格后,批量下單,真正扣錢時(shí)機(jī)為接單時(shí),如何保證賬戶余額充足?

1.每個(gè)訂單都都可以先查詢到多少錢,注:下單的時(shí)候不能查詢。(目前考慮的是查詢時(shí)放緩存里,但是這個(gè)單被查了不一定會(huì)被下單,而且緩存的時(shí)間不好定)
2.扣錢是在這個(gè)單子被接單的時(shí)候扣的
3.如果多線程或者循環(huán)過(guò)來(lái)一堆訂單,怎么保證賬戶余額大于0?余額存在DB,關(guān)于余額的操作已經(jīng)通過(guò)reids保證余額更新是安全的。

題目如上,歡迎各位賜教!

回答
編輯回答
念舊

可以加個(gè)凍結(jié)金額的字段,對(duì)應(yīng)你的預(yù)扣錢的概念;

2017年5月14日 10:54
編輯回答
玄鳥

拋磚引玉:

多線程 扣錢 要保證安全,在扣錢的時(shí)刻一定要順序,保證原子性;

想到兩種,1 是 使用redis存余額,redis操作本身是原子的; 2 是 使用數(shù)據(jù)庫(kù)樂(lè)觀鎖,數(shù)據(jù)加版本號(hào),更新數(shù)據(jù)檢驗(yàn)版本號(hào)。

2017年12月29日 00:04