我一直在考虑为我参与的应用程序开发一些简单的记录锁定。有一些用户需要花费数小时才能完成对记录的编辑。当其他人想要更改记录时,这会导致问题。目前不涉及锁定。
我不确定乐观锁定在我的情况下是否可靠,因为记录是通过 AJAX 请求保存的。我正在考虑应用某种悲观锁定;使用两个字段,例如locking_user_id和locking_timestamp,我可以跟踪谁打开了记录以及上次打开它的时间。
但是,由于用户可能一次打开它几个小时,我怎么知道用户是放弃它还是只是在努力工作呢?我不想强迫他们每 5 分钟更新一次 ~ 但这可能是可能的(AJAX 每 5 分钟保存一次)。
也许一个 jQuery 进程可以在用户工作时计数,并且每 5 分钟触发一个 AJAX 请求 (getJSON) 以更新locking_timestamp。这样我就可以维护谁在记录中工作。在时间戳变“旧”之后,我可以假设用户不再使用 reocrd。有没有人有过这种锁定的经验?