我公司有一个多用户的企业应用程序,它是物流进出口系统,我们按清关号开具发票。我们的问题是,两个用户发布发票与相同的清关实时,例如3秒。我们使用N层体系结构Asp .NET MVC和实体框架,这个问题的最佳实践是什么?它是否用我的许可号锁定部分?
发布于 2017-12-19 12:30:41
管理并发有两种方法
参见链接Optimistic vs. Pessimistic locking
乐观锁定是一种策略,用于读取记录,注意版本号(其他方法涉及日期、时间戳或校验和/散列),并在写入记录之前检查版本是否有更改。当您将记录写回时,您将过滤版本上的更新,以确保它是原子的。(也就是说,在您检查版本并将记录写入磁盘之间没有进行更新),并在一次命中中更新版本。
悲观锁定是指将记录锁定以供独占使用,直到完成为止。
我在SignalR中使用了悲观锁定来为users.Whenever用户编辑一个记录提供一个实时通知,我们将在数据库表中添加一个具有该记录的唯一标识符的记录(在这里,由于数据是不稳定的,我们使用nosql redis存储锁数据).When,另一个用户尝试编辑相同的记录,会显示一个通知,表示该记录被用户name.When锁定,另一个用户完成编辑后会发送通知给用户完成更新。
https://stackoverflow.com/questions/47886555
复制相似问题