为了账号安全,请及时绑定邮箱和手机立即绑定

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 关注
  • 1252 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号