[发明专利]基于java服务的异步导出方法及组件有效
申请号: | 201911002550.6 | 申请日: | 2019-10-21 |
公开(公告)号: | CN110955674B | 公开(公告)日: | 2022-09-06 |
发明(设计)人: | 杨国庆;钱欣萍;王金龙;纪华中;张宣 | 申请(专利权)人: | 江苏苏宁物流有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/25 |
代理公司: | 南京理工大学专利中心 32203 | 代理人: | 岑丹;马鲁晋 |
地址: | 210039 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 java 服务 异步 导出 方法 组件 | ||
本发明公开了一种基于java服务的异步导出方法及组件,该方法包括获取导出任务指令;对导出任务指令进行解析;根据导出任务指令解析结果获取相应配置模板;根据导出任务指令解析结果获取查询数据集合;根据配置模板输出相应配置的EXCEL文件流,并将EXCEL文件流存储在文件存储服务平台。本发明能实现请求导出快速响应,在高并发情况下数据导出任务能平缓执行。
技术领域
本发明属于数据导出技术,具体为一种基于java服务的异步导出方法及组件。
背景技术
数据导出是各类信息系统提供的最为基本且频繁应用的功能,批量导出功能需求比较多,每个需求都需要进行开发,开发重复度高,需要投入大量的开发资源。
目前大部分系统数据导出采用实时方式,数据导出消耗的时间比较长,用户体验不好,内存消耗比较大,当需要导出高并发请求数据时对系统性能影响很大,容易产生内存溢出情况。
发明内容
本发明的目的在于提出了一种基于java服务的异步导出方法。
实现本发明目的的技术解决方案为:一种基于java服务的异步导出方法,具体步骤为:
获取导出任务指令;
对导出任务指令进行解析;
根据导出任务指令解析结果获取相应配置模板;
根据导出任务指令解析结果获取查询数据集合;
根据配置模板输出相应配置的EXCEL文件流,并将EXCEL文件流存储在文件存储服务平台。
优选地,获取导出任务指令的具体方法为:
定量查询指令数据,并将查询出的导出任务指令数据分发给WindQ导出指令队列;
多台服务器对WindQ导出指令队列,空闲服务器获得导出任务指令。
优选地,定量查询数据的具体方式为:使用调度平台调用任务服务查询待处理的导出任务指令。
优选地,对导出任务指令进行解析具体包括:确定导出任务类型、用户编号、导出文件名、SqlId标识以及参数内容。
优选地,根据导出任务指令解析结果获取相应配置模板的具体方法为:
根据导出任务类型反查询对应的配置模板地址;
根据模板地址获取对应的已记载的配置模板。
优选地,所述配置模板的配置内容包括:需要导出的英文字段;英文字段对应的文字段描述;数据显示格式;标题行号;数据转换规则;数据存储时间;导出文件的最大行数;导出excel文件标题。
优选地,根据导出任务指令解析结果获取查询数据集合的具体方法为:
根据SQLId标识获取对应的SQL查询语句;
将参数内容进行格式化成Map参数对象;
根据SQL查询语句和对应的Map参数对象确定需要导出的数据集合。
优选地,还包括根据SQL查询语句和对应的Map参数对象确定需要导出的数据集合前,根据SQL查询语句和对应的Map参数对象进行数据库查询获取数据总量;
判断数据量总量是否大于模板配置最大行数,如果大于模板配置最大行数,,更新异步导出指令失败,并标注失败原因;
如果数据量总量小于模板配置数据量,根据SQL语句和参数查询数据库数据集合,确定需要导出的数据集合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏苏宁物流有限公司,未经江苏苏宁物流有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911002550.6/2.html,转载请声明来源钻瓜专利网。