1、在业务流程前后中,用到了redis锁 和 悲观锁两种不同的锁。
2、汇总账单的时候,从库中读取数据,将读取到的实收额也跟着更新,而在收费的时候添加了悲观锁,
在读账单表的时候 用到了 forupdate,但是redis锁那块同样会产生并发,因为redis锁那块在查询库的时候也需要对账单for update,这样可以防止并发,在悲观锁里若还没更新 则redis锁不去执行更新
3、解决方案 有上面的一个在 redis锁中的查询账单表的时候同样 for update,另外一种则是 对与我们业务相关的字段,不去更新(在redis所中,这样不能防止并发但是可以解决问题)
原文地址:http://7129486.blog.51cto.com/7119486/1845644