java 多线程实现pdf打包成zip下载
问题情境:
最近一个需求是需要在某个逻辑中处理2000多条数据,并且生成pdf打包成zip进行下载,之前是量不多,是同步for循环进行生成pdf然后打包下载,目前由于要与web端进行交互,下载完将zip流返回给前端,所以必须要优化速度。
解决方案:
生成pdf的方式改成异步:采用threadPoolTaskExecutor进行处理,
具体文章可以参考
https://blog.csdn.net/mutouren891114/article/details/106396839?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-106396839-blog-113740397.235%5Ev29%5Epc_relevant_default_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-106396839-blog-113740397.235%5Ev29%5Epc_relevant_default_base3&utm_relevant_index=2
以下是我的代码demo:
向上取余分段截取:
threadPoolTaskExecutor.submit()的使用:
其中需要注意的点:
1.对于量大的数据首先可以使用向上取余算法分段截取。
2.通过使用threadPoolExecutor来进行操作。