亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ef框架下 怎么處理高并發的庫存數量

ef框架下 怎么處理高并發的庫存數量

夢里花落0921 2018-07-30 17:10:16
某一商品庫存數為100  兩個人同時讀取到了數量 A添加10 為110 B減20 應為90數據上下文中A的Quantity+=10(110); B的Quantity-=20(80)在ef框架下  提交的后臺的sql語句 update quantity=A的Quantity(110)  update Quantity=B的Quantity(80)  導致庫存不準確 如果在讀取商品庫存數時加鎖 A讀取完后并沒有提交操作(或者提交后延遲很大) 其他用戶讀取這個商品或者操作其他數據時 會等待時間較長 有可能出現超時查了許多資料 樂觀鎖 悲觀鎖 滿足不了要求  有沒有大神 給解答下 給個其他的思路
查看完整描述

1 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

樂觀鎖 可以解決這種問題  ,B提交時會拋出錯誤,catch 住 重試,但是在高并發下并不是好的解決方案。在高并發下一種是直接用sql 語句 去 update ,這樣就不存在 使用 ef 更新實體(分為兩步,先獲取,在修改)這種情況了,在更高的并發下可以考慮緩存庫存數據,并保證更新操作的順序是對的就可以了


查看完整回答
反對 回復 2018-08-18
  • 1 回答
  • 0 關注
  • 1269 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號