[发明专利]一种大数据量excel文件多线程异步导出方法及系统在审
申请号: | 202210336086.X | 申请日: | 2022-04-01 |
公开(公告)号: | CN114490088A | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 孙宝岳;闵刚;姚占龙 | 申请(专利权)人: | 北京锐融天下科技股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/54 |
代理公司: | 北京汇信合知识产权代理有限公司 11335 | 代理人: | 王维新 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据量 excel 文件 多线程 异步 导出 方法 系统 | ||
本发明公开了一种大数据量excel文件多线程异步导出方法及系统,包括接收客户端发送的Excel文件导出请求,并将Excel文件导出请求添加至任务队列;调度线程池按照“先入先出”的原则,从任务队列中逐个取出等候处理的任务;执行线程池处理对取出的任务执行导出操作;导出成功后,将Excel文件的下载地址发送至客户端以供客户端的用户根据下载地址下载Excel文件。本发明采用异步导出机制,可在一定程度上提高处理速度及降低内存资源。
技术领域
本发明涉及数据导出技术领域,具体涉及一种大数据量excel文件多线程异步导出方法及系统。
背景技术
随着信息技术的发展,目前导出功能是各类信息系统提供的最为基本且频繁应用的功能,而处理大规模数据导出方案主要包括:使用 Apache 软件基金会开源的 Apache-POI 套件库来完成表格文件的创建、解析及导出,常见格式为 xls、xlsx,都是二进制文件格式;以及导出纯文本格式CSV,导出过程皆由用户线程执行,并同步返回导出文件进行下载。上述两种方案存在一些缺陷,如基于Apache-POI技术在实现导出时,由于其实现原理是在内存中一行一行的构建表格数据以及每个单元格的样式,因此在大数据量比如几十万,百万及以上规模的数据导出时会出现极高的内存占用以及长时间的执行时间,如果同时处理多个这样的任务可能会导致程序因过高的内存占用而崩溃;导出CSV的格式数据可以通过分批存盘的方式缓解内存占用,但在大数据量导出时由于需要较长的耗时,且如果同时执行多个导出任务,依然会出现极高的内存占用,为后端服务的正常运行带来风险,且普遍采用同步导出的方案,会使用户提交导出请求等待响应的时间较长导致较差的用户体验。
发明内容
为解决现有技术中存在的上述问题,本发明提供一种大数据量excel文件多线程异步导出方法及系统。
本发明公开了一种大数据量excel文件多线程异步导出方法,包括:
接收客户端发送的Excel文件导出请求,并将所述Excel文件导出请求添加至任务队列;
调度线程池按照“先入先出”的原则,从所述任务队列中逐个取出等候处理的任务;
执行线程池对取出的所述任务执行导出操作;
导出成功后,将所述Excel文件的下载地址发送至所述客户端以供所述客户端的用户根据所述下载地址下载所述Excel文件;
其中,所述执行线程池对取出所述任务执行导出操作包括:
预先设置存盘批次数值;
遍历当前导出任务中的数据列表,解析每一条数据,提取要导出字段的名称和值,然后以逗号分隔的形式将值追加至文本缓冲区;
每处理完一条数据后,立即释放该条数据所占的内存;
当处理数据的数量达到所述存盘批次数值时,将所述文本缓冲区的文本内容追加至导出文件中,写入成功后立即清理所述文本缓冲区的内容空间;
重复处理数据,直至所述任务中的所有数据处理完成。
优选的是,根据业务文件导出功能的触发频率以及服务器的内存大小设置所述任务队列容纳的任务数量;
若达到所述任务数量,则拒绝接收所述Excel文件导出请求;
若未达到所述任务数量,则添加至所述任务队列。
优选的是,所述调度线程池用于监听所述任务队列,且当有空闲线程则从所述任务队列中取出对应任务。
本发明还提供一种上述大数据量excel文件多线程异步导出方法的系统,包括:
接收模块,用于接收客户端发送的Excel文件导出请求,并将所述Excel文件导出请求添加至任务队列;
调度模块,用于调度线程池按照“先入先出”的原则,从所述任务队列中逐个取出等候处理的任务;
执行导出模块,用于执行线程池对取出的所述任务执行导出操作;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京锐融天下科技股份有限公司,未经北京锐融天下科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210336086.X/2.html,转载请声明来源钻瓜专利网。