[发明专利]一种报表导出方法及装置有效
申请号: | 202211258855.5 | 申请日: | 2022-10-14 |
公开(公告)号: | CN115600567B | 公开(公告)日: | 2023-08-11 |
发明(设计)人: | 甘志新;姚纪卫;张东升 | 申请(专利权)人: | 安芯网盾(北京)科技有限公司 |
主分类号: | G06F40/18 | 分类号: | G06F40/18;G06F16/22;G06F9/48;G06F9/50 |
代理公司: | 北京中创云知识产权代理事务所(普通合伙) 11837 | 代理人: | 徐辉 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 报表 导出 方法 装置 | ||
本发明实施例涉及一种报表导出方法及装置,所述方法包括:根据至少一个客户端发送的报表导出请求,提取导出任务信息并将导出任务信息及其状态存储在数据库的列表中;依次向通道监听队列发送与所述导出任务信息相对应的任务注册信息,同时返回已添加导出任务的消息至客户端;依次根据通道监听队列中的任务注册信息,激活各任务注册信息对应的注册函数;将各注册函数分配至多个不同类型的服务中以并发执行各注册函数并生成导出文件;将导出文件输出至文件服务器,以使得客户端从该文件服务器中下载导出文件。本发明实施例的技术方案,通过等待唤醒机制激活对应的查询任务,并采用并行处理解决大数据量查询的效率问题。
技术领域
本发明实施例涉及数据文件处理技术领域,尤其涉及一种报表导出方法及装置。
背景技术
随着微服务技术的发展,越来越多的企业会将一个软件的功能拆分成多个独立的服务,通过远程过程调用(Remote Procedure Call,以下简称“RPC”)对该功能进行调用。为了应对高并发的访问压力,每个服务被部署在一个或多个云端服务器上,因此针对云端大数据的报表导出需求也随之而来。
现有的技术针对Excel报表导出的方法中,主要分为同步导出和异步导出的方法,同步的导出方法随着数据量的激增,导出响应时间也随之延长,严重时会导致服务器瘫痪。现有技术中用到异步导出的方法包括:将源查询语句拆分成多个子查询语句,而该种方法在数据分布不均的情况下,并不能保证在每个数据检索服务器上的查询效率,从而影响整体的查询效率;采用PHPExcel类库将目标数据存储到Excel中,而该种方法中,PHP作为一种脚本语言应对高并发的场景时性能堪忧,并且该方法中需要采用定时任务获取导出请求,其定时间隔过小会导致很多无谓的轮询,空耗CPU资源,间隔过大又会严重影响导出效率。
因此,在高并发请求下,分布式微服务系统出现报表导出响应时间长,多任务导出效率慢成为亟待解决的问题。
发明内容
基于现有技术的上述情况,本发明实施例的目的在于提供一种报表导出方法及装置,通过等待唤醒机制激活对应的查询任务,并采用并行处理解决大数据量查询的效率问题,以及利用通道的特性来保证导出Excel数据的有序性。
为达到上述目的,根据本发明的一个方面,提供了一种报表导出方法,所述方法包括:
根据至少一个客户端发送的报表导出请求,提取导出任务信息并将导出任务信息及其状态存储在数据库的列表中;
依次向通道监听队列发送与所述导出任务信息相对应的任务注册信息,同时返回已添加导出任务的消息至客户端;
依次根据通道监听队列中的任务注册信息,激活各任务注册信息对应的注册函数;
将各注册函数分配至多个不同类型的服务中以并发执行各注册函数并生成导出文件;
将导出文件输出至文件服务器,以使得客户端从该文件服务器中下载导出文件。
进一步的,所述导出任务信息包括任务ID和查询条件;
所述将各注册函数分配至多个不同类型的服务中,包括根据各注册函数对应的查询条件分配不同类型的服务。
进一步的,所述任务注册信息包括注册消息和注册状态。
进一步的,所述方法还包括:
针对已向通道监听队列发送的导出任务信息,根据该导出任务相对应的注册消息和注册状态生成已导出任务识别码。
进一步的,针对所述多个不同类型的服务中的每一个服务,
根据任务ID将各注册函数依次分配至不同的CPU中执行。
进一步的,所述不同的CPU之间相互独立;
所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安芯网盾(北京)科技有限公司,未经安芯网盾(北京)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211258855.5/2.html,转载请声明来源钻瓜专利网。