猿问
多层架构中并发控制
现有系统是简单三层,以商品购买为例。逻辑层判断件数是否大于0.但是仍然出现两个客户同时购买一个件数为1的商品。怎么杜绝这种事情发生?
慕工程0101907
浏览 373
回答 2
2回答
富国沪深
1、将此购买逻辑通过存储过程完成,因为 DB 是唯一的,所以可以做到逻辑正确性;2、可用 Count 字段(通常会使用额外的RowVersion 字段,timestamp 类型来做并发更新)来控制更新语句,通过检查更新是否成功来判断是否购买成功,类似如下代码:var version= shop.RowVersion;shop.count--;update t set Count = shop.count from t where RowVersion = version;3,将订单处理逻辑部署为单独的服务,此服务串行读取订单并处理
0
0
0
一只萌萌小番薯
如果这逻辑是靠数据库处理的话,可以使用事务。如果在程序里处理的话,保证所有请求的调用对象是同一个实例就行了。
0
0
0
随时随地看视频
慕课网APP
相关分类
.NET
.net 中 字符串含有超链接,如何给超链接自动加上a标签?
1 回答
请问.net 中用jquery传值安全吗?
2 回答
我要回答