web-applications - 与数据库事务的悲观锁定关系
问题描述
我知道悲观锁定与锁定数据库记录并在“事务”结束时释放它获得锁定。但这是否意味着悲观锁定在物理事务中,例如
开始交易
//pessimistic locking
提交交易?
对于网页,当用户选择要编辑的记录时,当他按下编辑按钮时,我想悲观地锁定这条记录,以便其他人无法更改它,然后在编辑按钮 onpress() 事件中,我开始物理事务?
似乎不可能,因为编辑过程可能很长......它在悲观锁定中保持整个编辑过程(按编辑按钮,在网页中编辑,按保存按钮)的数据库事务?
解决方案
构建这样的锁定系统不是很实用。即使您能够以某种方式做到这一点,它也会严重限制允许访问服务器的用户数量。
如果允许许多用户编辑一个用户提交的帖子,您应该使用某种版本控制系统。或者,如果您更喜欢锁定系统,则创建一个系统来记录正在编辑的帐户和内容,并定期从客户端更新此信息。就像一分钟一次,如果服务器在两分钟内没有收到客户端的任何消息,则释放锁。
推荐阅读
- java - 当我运行程序时,Eclipse (Java) 冻结了我的整个计算机
- html - Asp .net core - 使用 Html.ActionLink 发送参数
- python - 如何正确绘制 librosa STFT 输出
- schema.org - 使用 JSON-LD 更正事件列表的结构化数据格式
- python - 如何在 django url 中捕获令牌和电子邮件?
- python - 修改后的 PyTorch 损失函数 BCEWithLogitsLoss 返回 NaNs
- python - 如何以全屏模式直接将 android 启动到我的应用程序中
- node.js - lerna bootstrap 失败并显示“没有这样的文件或目录”
- ios - 从 SwiftUI 颜色选择器中获取价值
- excel - 我想使用带有按钮的 VBA 宏在我的 Excel 中隐藏/取消隐藏下面的下一行,并对不同的行和不同的工作表使用相同的宏