[发明专利]一种分布式环境中大批量导出数据的方法有效
申请号: | 201711059530.3 | 申请日: | 2017-11-01 |
公开(公告)号: | CN107798111B | 公开(公告)日: | 2021-04-06 |
发明(设计)人: | 李波;岳永胜 | 申请(专利权)人: | 四川长虹电器股份有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/22;G06F16/242;G06F16/25;G06F9/50 |
代理公司: | 四川省成都市天策商标专利事务所 51213 | 代理人: | 秦华云 |
地址: | 621000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种分布式环境中大批量导出数据的方法,针对传统导出数据的不足进行改进,采用先使用多线程单表查询,再将查询到的数据使用多线程再次进行表查询,从而达到加快数据导出速度,缩短用户等待时间的效果。本发明采用多次使用多线程的技术,缩短用户等待时间的同时降低数据库服务器以及应用服务器的负载。 | ||
搜索关键词: | 一种 分布式 环境 大批量 导出 数据 方法 | ||
【主权项】:
一种分布式环境中大批量导出数据的方法,其特征在于,包含以下步骤:A.web前端发送需要导出的数据的条件,通过聚合查询出满足用户需要导出的数据条数,计算每一个线程完成多少条数据查询;B.创建一个实现java.util.concurrent.Callable接口线程,所述接口线程用于分页获取订单表的数据;C.根据服务器的配置情况创建线程池,将线程即查询任务加入到线程池中,且为每个所述线程池预设最佳线程数目,根据线程池的调度策略,自动调用查询任务,进行订单表的数据查询,并将查询获取的订单表的数据保存至第一文件中;D.对数据进行联合查询,建立与订单表一一对应的查询任务,并对单表查询出的数据进行内存分页,并将查询出的数据采用Map的形式存储在内存中,获取key值及value值,其中,所述key值为订单数据的id值,value值为关联表需要获取到的数据值;E.将所述第一文件中的数据与步骤D中获取的Map形式的数据进行组装,组合出符合导出要求的List集合,并将List集合存到第二文件中;F.对第二文件中的数据进行解析,采用IO流的形式获取数据,并将数据写入到Excel文件中;G.给Excel文件预设一个Excel条数上限值,在步骤F中将数据写入到Excel文件中时,若写入的Excel条数到达所述Excel条数上限值时,则将存储在内存中的Map的形式的数据写入到硬盘中;H.使用http协议,往web前端的http请求的响应输出流中写入文件数据,完成大批量数据导出。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川长虹电器股份有限公司,未经四川长虹电器股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201711059530.3/,转载请声明来源钻瓜专利网。