首先,需求是:导入一份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. 这款耳机堪比千元级的AirPods
  2. 我的世界服务器开启就停止运行,我的世界怎么停止时间
  3. CST时间转换成 yyyy-MM-dd格式
  4. JAVA数组子集_【Java虚拟机】JVM系列学习之JVM体系(一)
  5. 简单叙述tcp/ip的工作原理和主要的协议_802.11协议精读3:CSMA/CD与CSMA/CA
  6. JAVA项目一 家庭收支记账软件
  7. 页面加载出现白页是什么原因造成的
  8. Windows超级管理器
  9. jdk1.8换成11,启动项目报错java.net.MalformedURLException: unknown protocol: jrt
  10. 常用数据库排名及分类介绍
  11. [转载] 网友曝光:东方标准赴日培训90%可出国属欺诈
  12. Zeev Suraski、Andi Gutmans、Rasmus Lerdorf
  13. JavaBeans技术的应用
  14. 包教包会—全网最易懂的全加器高位进位和低位进位讲解
  15. UVA 11426 GCD - Extreme (II) (欧拉函数)
  16. 深圳行-八:惠州泡温泉
  17. Maekdown使用
  18. 常用的时间系统有哪些?
  19. android 线性布局总结
  20. MATLAB轻松绘制地图路线——已知及未知坐标下的处理方法(2)

热门文章

  1. 熬夜爆肝!C++基础入门大合集【万字干货预警 建议收藏】
  2. 操作系统实验二进程的创建控制实验(含代码及实验心得)
  3. Activiti7.0 EL NullPoint问题
  4. Unity3D播放音频数组的问题
  5. 优质的计算机专业书籍有哪些?
  6. 五年级下学期计算机课总结,信息技术期末教学总结
  7. 数据库,数据库管理系统
  8. arm_neon.h文件ABI说明
  9. 【转载】TCP/IP协议详解
  10. MIS WiFi安全相关-aircrack-ng破解WiFi密码