[发明专利]一种基于队列的分布式数据导出方法及系统在审
申请号: | 201910747039.2 | 申请日: | 2019-08-14 |
公开(公告)号: | CN110532311A | 公开(公告)日: | 2019-12-03 |
发明(设计)人: | 裴磊 | 申请(专利权)人: | 泰安协同软件有限公司 |
主分类号: | G06F16/25 | 分类号: | G06F16/25;G06F16/27;G06F17/24 |
代理公司: | 37240 济南誉丰专利代理事务所(普通合伙企业) | 代理人: | 高强<国际申请>=<国际公布>=<进入国 |
地址: | 271000 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 队列 查询 导出 线程 应用服务器 数据装载 数据处理技术 分布式数据 全局标志位 数据服务器 查询结果 配置循环 数据查询 数据输出 数据转换 循环查询 端用户 多线程 数据量 入栈 预设 唤醒 载入 更新 申请 | ||
本申请公开了一种基于队列的分布式数据导出方法及系统,涉及数据处理技术领域,应用服务器根据web端用户发出的数据导出请求配置循环查询线程,将循环查询线程获得的数据装载至队列并根据线程查询结果更新全局标志位,如果队列中存在数据装载,所述应用服务器则唤醒excel导出,将队列中的数据输出为excel表格。循环的查询线程根据预设的查询范围对数据服务器中的数据进行查询,查询到的数据载入到队列中。当数据进入队列后,则开始将入栈的数据转换为excel表格,实现了数据查询进行中就可以实现表格的生成。进而当数据量较大时,实现对数据的多线程多次查询,而且同步生成excel表格,提高了数据导出excel表格的速度。
技术领域
本申请涉及数据处理技术领域,具体涉及一种基于队列的分布式数据导出方法及系统。
背景技术
传统技术中为了实现对数据的可视化统计,一般需要对数据库中的数据进行导出,生成excel表格。目前,在c#语言环境下,对数据库数据导出到excel,一种是采用一次查询获得所有数据库中的数据,查询完毕后将所有的数据生成excel表格。第二种是获得数据的总条数,根据数据总条数进行分页实现分页查询,每次查询完成后再生成excel表格。
上述两种方法虽然在一定程度上可以实现数据的查询导出excel表格,但是当数据量较大时,使得查询总条数较多,进而导致数据导出excel表格速度较慢。
发明内容
本申请为了解决上述技术问题,提出了如下技术方案:
第一方面,本申请实施例提供了一种基于队列的分布式数据导出方法,所述方法包括:应用服务器根据web端用户发出的数据导出请求配置循环查询线程,所述循环查询线程用于在数据服务器中进行数据查询;所述应用服务器将所述循环查询线程获得的数据装载至队列并根据线程查询结果更新全局标志位,所述全局标志位用于指示循环查询线程下一时刻是否继续进行数据查询;如果所述队列中存在数据装载,所述应用服务器则唤醒excel导出,将所述队列中的数据输出为excel表格。
采用上述实现方式,循环的查询线程可以根据预设的查询范围对数据服务器中的数据进行查询,查询到的数据载入到队列中。当数据进入队列后,则开始将入栈的数据转换为excel表格,实现了数据查询进行中就可以实现表格的生成。进而当数据量较大时,实现对数据的多线程多次查询,而且同步生成excel表格,提高了数据导出excel表格的速度。
结合第一方面,在第一方面第一种可能的实现方式中,所述应用服务器根据web端用户发出的数据导出请求配置查询线程包括:确定每个所述查询线程的查询数据范围;根据所述查询线程的配置数量和每个所述查询线程的查询数据范围,确定每个所述查询线程每一次的数据查询对应的起始点和终止点。
结合第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,所述应用服务器根据线程查询结果更新全局标志位,包括:如果第一线程在第一时刻的数据查询结果中对应的数据条数小于所述查询数据范围中对应的数据条数,则将所述全局标志位更新为false,所述第一线程为任一线程,所述第一时刻为所述应用服务器接收所述查询线程的查询结果的任一时刻。
结合第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,每个所述查询线程在进行下一次查询前,确定所述全局标志位的状态;如果所述全局标志位为false,则结束数据查询操作。
结合第一方面,在第一方面第四种可能的实现方式中,所述如果所述队列中存在数据装载,所述应用服务器则唤醒excel导出,包括:如果所述队列中存在数据装载,则判断是否存在excel导出进程;如果所述excel导出进程不存在,则唤醒所述excel导出进程,所述excel导出进程用于将所述队里中装载的数据依次生成excel表格。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于泰安协同软件有限公司,未经泰安协同软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910747039.2/2.html,转载请声明来源钻瓜专利网。