问题:使用了Redis分布式锁,但是还是出现了并发的问题
原因:数据库的事务提交结束晚于新线程的开始执行,代码里事务的提交放在了带有锁的方法的同级service
解决:① 循环查询200条数据再做更新时,查询时增加id条件,每个循环的最后一个id作为下一次循环的条件
② 将涉及到事务的方法抽到另外一个service文件,调用他,即下调一层
③ 加上
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)