执行更新操作需要注意的问题-并发或等待条件变更

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/y41992910/article/details/88896500

管理员1审核通过->系统推送制证,订单变成已完成->管理员2审核通过,-订单又变回已审核

由此引申出来的并发控制问题
1.等待期间,操作所依赖的条件已经改变了,操作要回退(刚进入方法要判断一次等待的条件是否还满足,不满足则不用操作了)
2.每一步的操作,都应该有自己的独特依赖,而不是多个步骤依赖于同一个字段,不然不好区分和排查它经过了什么步骤.
比如订单状态是一个总的控制项,但是订单走过什么步骤,都应该有自己的记录.或者字段来控制.
3.没有使用乐观锁,忽略了version字段.(比较好的根本性解决方案,应该要使用乐观锁,研究mybatis使用乐观锁的更新方式)
4.使用悲观锁.

猜你喜欢

转载自blog.csdn.net/y41992910/article/details/88896500