使用悲观锁进行更新和获取

问题描述

需要使用 LockMode Pessimistic 检索其状态为1 ,然后将状态设置为0 的最新数据。

所以Db column are => id(autogenerated),count,category_key,status(initially 1 for all).

我已经在db中预先填充了数据,对于每个category_key组合,我都有10000个计数....

因此,对于DG_KK,状态1为1到10000,然后对DG_TG 1状态为1 10000。

DB SC

现在,当我将键DG_KK 作为category_key传递时,然后使用原子提取从数据库中使用悲观模式进行更新,然后需要获取计数值,然后更新状态0 >

所以可以说 thread1 带有键DG_KK并获得计数1和更新状态0 如果 thread2 同时带有键DG_KK,将会或应该得到计数2并同时更新状态0,因此随之而来。但是,如果thread3随DG_TG一起提供,它将获得计数1,并且计数也将保持不变。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)