因为在controller进行锁,没有所需要的业务参数,从而在service加锁,然后service执行完成解锁。
就会存在没有提交事务而锁释放了,造成第二个请求进来数据脏读。有什么好的解决办法吗
java业务相关的分布式锁在service锁住,如何在提交事务的时候同时解开锁
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 马欢欢 2019-12-03 19:40关注
可以通过拆分一个Service的事务、锁的两部分工作,拆成2个Service,
Controller调用第一个Service(加锁、释放锁),第一个Service再调用第二个Service(事务控制部分)
示例,修改前
HelloController --HelloService 事务开始 加锁 // 业务代码 解锁 事务结束
示例,修改后
HelloController --LockService 加锁 --HelloService 事务开始 // 业务代码 事务结束 解锁
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥100 c语言,请帮蒟蒻看一个题
- ¥15 名为“Product”的列已属于此 DataTable
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
- ¥50 成都蓉城足球俱乐部小程序抢票
- ¥15 yolov7训练自己的数据集
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)