首先,需求是:导入一份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导出功能相关推荐

  1. 基于easyexcel的MySQL百万级别数据的excel导出功能

    前言 最近我做过一个MySQL百万级别数据的excel导出功能,已经正常上线使用了. 这个功能挺有意思的,里面需要注意的细节还真不少,现在拿出来跟大家分享一下,希望对你会有所帮助. 原始需求:用户在U ...

  2. 根据children动态复杂表头excel导出_Java高级特性-注解:注解实现Excel导出功能

    注解是 Java 的一个高级特性,Spring 更是以注解为基础,发展出一套"注解驱动编程". 这听起来高大上,但毕竟是框架的事,我们也能用好注解吗? 的确,我们很少有机会自己写注 ...

  3. java数据导出ex_Java高级特性注解:注解实现Excel导出功能

    作者:JerryWu来源:SegmentFault 思否社区 注解是 Java 的一个高级特性,Spring 更是以注解为基础,发展出一套"注解驱动编程". 这听起来高大上,但毕竟 ...

  4. ThreadPool的线程开启、线程等待、线程池的设置、定时功能

    一. ThreadPool简介 ThreadPool简介:ThreadPool是一个线程池,当你需要开启n个线程时候,只需把这个指令抛给线程池,它将自动分配线程进行处理,它诞生于.Net 2.0时代. ...

  5. 如何在 Asp.Net Core 实现 Excel 导出功能

    在web应用程序开发时,或许你会遇到这样的需求,如何在 Asp.Net Core 中实现 excel 或者 word 的导入导出,在 NuGet 上有大量的工具包可以实现这样的功能,本篇就讨论下如何使 ...

  6. Angular导出功能(excel导出功能、文件数据流导出功能、图片的下载导出功能)

    Angular导出功能(excel导出功能.文件数据流导出功能.图片的下载导出功能) 场景1:(直接返回网络地址进行导出的excel) 后台返回的是 : "http://192.168.0. ...

  7. python爬虫利用线程池下载视频

    由于requests模块中,requests.get()是线程阻塞的,所有当有多个爬虫进行爬取时,那么单线程式爬虫是耗时比较长的,所以我们需要使用线程池,利用线程池来爬取耗时比较长的资源,这里我们使用 ...

  8. java Excel导出功能之 不固定列表格

    背景:考勤周期为本月19号至上月20号,则每个月考勤周期表的列是动态变化的.所有数据显示和excel导出功能都需要动态的进行处理. 显示格式如下图 前端 checkin.jsp<%@ page ...

  9. Excel导出功能超时解决方案 -- 异步处理

    Excel导出功能超时解决方案 -- 异步处理 参考文章: (1)Excel导出功能超时解决方案 -- 异步处理 (2)https://www.cnblogs.com/nightOfStreet/p/ ...

最新文章

  1. 如何导入别人的android studio项目,解决gradle版本不兼容问题
  2. php7和7.1,PHP7.0和7.1 部分新增特性备忘代码分享
  3. 多类SVM的损失函数
  4. Verdi - GUI技能操作 Before you start (未完)
  5. Android 2018最新验证手机号正则表达式
  6. Python中元组的介绍以及常见操作
  7. Oracle中TO_DATE格式的使用小结
  8. centos7 安装 nvm
  9. 使用画图软件gunplot出现的问题和解决办法
  10. 【Python实例第18讲】affinity propagation聚类算法
  11. Maven里头的pom.xml配置详解
  12. c语言 自适应模式算术编码,算术压缩论文基于算术编码的数据压缩算法研究与实现.doc...
  13. springboot导出pdf文件(简历)
  14. http://blog.csdn.net/pizi0475/article/details/7768597
  15. 手工从grub引导进入Ubuntu16.04
  16. 手把手教你用Python打造一款批量下载视频并能可视化显示下载进度的下载器
  17. PS动作快速把图片做成手绘油漆涂鸦画效果
  18. 技术干货 | 人大金仓KFS基于分区索引的分片入库技术解析
  19. geek_Great Geek Gadget赠品抓斗袋,呃,拍卖
  20. Android开发必备那些工具

热门文章

  1. MySQL中Count和Sum的区别
  2. python 键盘输入矩阵
  3. 驱动开发思路以及应用程序与驱动程序的区别
  4. SpringBoot+Vue实现前后端分离教学评价系统
  5. 多项式函数在某一点处的泰勒展开
  6. Linux中的Seq
  7. 2014第二十二届全国青少年信息学奥林匹克联赛初赛
  8. html5笔迹画图,html5绘图工具canvas模拟笔迹绘画特效
  9. 什么是AppImage
  10. texstudio使用