利用线程池来处理Excel导出功能
首先,需求是:导入一份Excel数据,和数据库里面进行对比,若发现不一致的数据,则全部整成一份Excel导出来!
然而:
由于数据量比较大,读写速度等原因,会造成接口请求超时!
那么:
我给出的解决方案就是开启多线程处理数据写入Excel中
直接上代码:
/*** 初始化线程池* TODO (建议线程数 = 2 * CPU最大处理器数)*/private static ExecutorService executor = ThreadUtil.newExecutor(2 * Runtime.getRuntime().availableProcessors());
// 两个数据进行对比, 找出不一致的数据List (以Excel数据为准)List<SubscriptionExcelDTO> compareList = this.compare(subscriptionExcelEntities, subscriptionList);// 为了异步处理List<Future<Boolean>> futures = new ArrayList<>(compareList.size());for (SubscriptionExcelDTO excelDTO : compareList) {Future<Boolean> submit = executor.submit(() -> {if ("韶关保利时光印象-一期-4栋-1-2604".equals(excelDTO.getRoomName())) {// 模拟异常, 不影响其他的数据的处理int test = 1/0;}log.info(">>> " + excelDTO.getRoomName());// 执行业务逻辑this.writerRowIng(excelDTO, writer);return Boolean.TRUE;});futures.add(submit);}// 取数据for(Future submit : futures) {// 保证每个数据都取出来,且正确submit.get();}log.info("------------------>> 主线程等待完毕");
可能数据量贼大贼大,可能还是会超时的话,可以考虑再加入RabbitMQ异步处理
当然这只是我使用的一种解决方案而已,还是很多种方案的,
大家可以在下面给出自己的方案,楼主也想多向大家学习的!
利用线程池来处理Excel导出功能相关推荐
- 基于easyexcel的MySQL百万级别数据的excel导出功能
前言 最近我做过一个MySQL百万级别数据的excel导出功能,已经正常上线使用了. 这个功能挺有意思的,里面需要注意的细节还真不少,现在拿出来跟大家分享一下,希望对你会有所帮助. 原始需求:用户在U ...
- 根据children动态复杂表头excel导出_Java高级特性-注解:注解实现Excel导出功能
注解是 Java 的一个高级特性,Spring 更是以注解为基础,发展出一套"注解驱动编程". 这听起来高大上,但毕竟是框架的事,我们也能用好注解吗? 的确,我们很少有机会自己写注 ...
- java数据导出ex_Java高级特性注解:注解实现Excel导出功能
作者:JerryWu来源:SegmentFault 思否社区 注解是 Java 的一个高级特性,Spring 更是以注解为基础,发展出一套"注解驱动编程". 这听起来高大上,但毕竟 ...
- ThreadPool的线程开启、线程等待、线程池的设置、定时功能
一. ThreadPool简介 ThreadPool简介:ThreadPool是一个线程池,当你需要开启n个线程时候,只需把这个指令抛给线程池,它将自动分配线程进行处理,它诞生于.Net 2.0时代. ...
- 如何在 Asp.Net Core 实现 Excel 导出功能
在web应用程序开发时,或许你会遇到这样的需求,如何在 Asp.Net Core 中实现 excel 或者 word 的导入导出,在 NuGet 上有大量的工具包可以实现这样的功能,本篇就讨论下如何使 ...
- Angular导出功能(excel导出功能、文件数据流导出功能、图片的下载导出功能)
Angular导出功能(excel导出功能.文件数据流导出功能.图片的下载导出功能) 场景1:(直接返回网络地址进行导出的excel) 后台返回的是 : "http://192.168.0. ...
- python爬虫利用线程池下载视频
由于requests模块中,requests.get()是线程阻塞的,所有当有多个爬虫进行爬取时,那么单线程式爬虫是耗时比较长的,所以我们需要使用线程池,利用线程池来爬取耗时比较长的资源,这里我们使用 ...
- java Excel导出功能之 不固定列表格
背景:考勤周期为本月19号至上月20号,则每个月考勤周期表的列是动态变化的.所有数据显示和excel导出功能都需要动态的进行处理. 显示格式如下图 前端 checkin.jsp<%@ page ...
- Excel导出功能超时解决方案 -- 异步处理
Excel导出功能超时解决方案 -- 异步处理 参考文章: (1)Excel导出功能超时解决方案 -- 异步处理 (2)https://www.cnblogs.com/nightOfStreet/p/ ...
最新文章
- 如何导入别人的android studio项目,解决gradle版本不兼容问题
- php7和7.1,PHP7.0和7.1 部分新增特性备忘代码分享
- 多类SVM的损失函数
- Verdi - GUI技能操作 Before you start (未完)
- Android 2018最新验证手机号正则表达式
- Python中元组的介绍以及常见操作
- Oracle中TO_DATE格式的使用小结
- centos7 安装 nvm
- 使用画图软件gunplot出现的问题和解决办法
- 【Python实例第18讲】affinity propagation聚类算法
- Maven里头的pom.xml配置详解
- c语言 自适应模式算术编码,算术压缩论文基于算术编码的数据压缩算法研究与实现.doc...
- springboot导出pdf文件(简历)
- http://blog.csdn.net/pizi0475/article/details/7768597
- 手工从grub引导进入Ubuntu16.04
- 手把手教你用Python打造一款批量下载视频并能可视化显示下载进度的下载器
- PS动作快速把图片做成手绘油漆涂鸦画效果
- 技术干货 | 人大金仓KFS基于分区索引的分片入库技术解析
- geek_Great Geek Gadget赠品抓斗袋,呃,拍卖
- Android开发必备那些工具