前言
事务控制参考springboot博文的”spring事务“部分
利用线程池和CountDownLatch,多线程并发处理批量数据,实现多线程事务回滚,事务补偿。
//定义两计数器
private CountDownLatch begin,end;
begin设置为1,用于发布开始命令,如果需要开始,则begin.countdown
end用于记录任务的执行情况。begin.countdown后,需end.await,等待任务都执行完。
当begin.countdown开始执行任务后,在最后需end.countdown
当end.countdown减到为0后,则切换到主线程,继续开始往下执行
基于回到函数
实现更灵活的去配置各业务数据操作场景,即:暴露excute方法执行线程任务,执行的具体执行任务交给回调函数实现。
基于spring上下文中获取事务管理器,封装获取spring上下文工具类ApplicationContextProvider