
目录
大家好,我是哪吒。
一、前情提要
在上一篇文章中,我们通过双异步的方式导入了10万行的Excel,有个小伙伴在评论区问我,如果保证事务呢,如果分批的话。
原始需求:读取一个10万行的Excel
通过串行读取Excel,单个Excel耗时191s。

优化1:使用双异步后,从 191s 优化到 2s
- 分别通过POI和EasyExcel的方式读取Excel并插入数据库;
- 探讨了“线程池中的核心线程数设置问题”;
- 经过数十次的测试,总结了通过线程池的方式,争取一次性并行入库,效率最佳。
本文详细介绍了如何在Java中处理双异步情况下保证数据一致性和事务管理。通过使用Future、CompletableFuture以及自定义线程池优化了Excel数据导入的性能。同时,探讨了@Transactional注解的使用及其失效场景,分析了Spring事务传播机制的限制,并提出了解决异步事务回滚的方案,最后总结了高效读取10万行Excel的最佳实践。

大家好,我是哪吒。
在上一篇文章中,我们通过双异步的方式导入了10万行的Excel,有个小伙伴在评论区问我,如果保证事务呢,如果分批的话。
通过串行读取Excel,单个Excel耗时191s。

2798
1347
5353

被折叠的 条评论
为什么被折叠?