掌桥专利:专业的专利平台
掌桥专利
首页

数据导入导出子系统

文献发布时间:2023-06-19 11:22:42


数据导入导出子系统

技术领域

本发明涉及计算机数据处理技术领域,尤其涉及数据导入导出子系统。

背景技术

在各业务系统中,通过Excel导入数据和导出Excel文件功能是我们常见的功能,例如:订单导出、报表导出、商品导入等,随着这种需求的越来越多,重复代码和重复的处理流程也越来越多。另一方面,对于当前主流的B/S架构下,当数据量较大时,系统处理时间较长,会导致多种问题,比如:浏览器端超时,对此业界常见的做法是:前端提交之后,后端异步处理,前端轮询处理结果,但此时操作者除了等待当前任务处理完成,而不能方便地在当前系统内做其它操作,以免切换页面导致错过处理结果等。

另一方面,对于导入和导出操作的处理过程是可以分成若干阶段的。对于导入操作,可分为:文件上传、文件解析、分页提交数据、数据格式转换、数据校验、业务处理并保存、返回处理结果处理、通知用户等阶段,其中“数据校验”、“业务处理并保存”是与具体业务相关的。对于导出操作,可分为:构造分页查询条件、查询业务数据、返回数据类型格式转换、追加到导出文件、文件切割(可选)、压缩(可选)、通知用户等阶段,对于大数据量导出,“查询业务数据”又需要分页查询,其中只有“查询业务数据”是与具体业务相关的,本发明旨在解决的问题就是如何简化业务侧开发工作。

发明内容

本发明的目的是为了解决现有技术中存在的缺点,而提出的数据导入导出子系统。

为了实现上述目的,本发明采用了如下技术方案:

数据导入导出子系统,包括业务相关部分处理阶段和业务不相关部分处理阶段,所述业务不相关处理阶段包括任务队列、任务调度器、导入流程管理器、导出流程管理器,所述业务相关部分处理阶段包括业务系统相关的公共阶段和也业务相关的特定处理阶段。

优选地:所述任务队列负责当用户提交任务后,不进行立即执行,先保存此队列至任务缓冲区。

优选地:所述任务调度器是根据系统资源使用情况从任务缓冲区取任务,并根据任务类型分别交由导入处理流程管理器和导出流程管理器处理。

优选地:所述导入流程管理负责处理导入类型的任务,管理每个导入任务的整个处理过程。

优选地:所述导入流程管理器的具体处理流程如下:

A1:将任务状态置为“Doing”;

A2:解析导入文件,并组装统一的数据结构;

A3:向业务端发送请求;

A4:将处理结果保存到本地,循环STEP2-STEP4直至所有数据处理完成;

A5:统计该任务的数据导入总数、成功数、失败数等;

A6:将任务状态置为“Done”;

A7:通知用户任务的执行结果。

优选地:所述导出处理流程管理器负责处理导出类型的任务,管理每个导出任务的整个处理过程。

优选地:所述导出处理流程管理器具体处理流程如下:

B1:将任务状态置为“Doing”;

B2:创建一个导出结果文件;

B3:组装查询条件,并设置“页大小”;

B4:向业务端发送请求;

B5:检查当前文件是否超过单文件行数限制,如果是,则新创建一个文件;

B6:将业务端返回的数据列表追加到文件,接着请求下一页的数据,循环遍历STEP4-STEP6,直至业务端返回的数据数量是否小于“页大小”;

B7:将导出的所有文件打成一个压缩包;

B8:将任务状态置为“Done”;

B9:通知用户任务的执行结果。

优选地:所述业务系统相关的公共阶段内嵌在业务系统中,主要负责接收请求、请求数据的格式转换、调用具体的导入处理流程管理器、调用具体的导出处理流程管理器和返回数据的格式转换。

优选地:所述业务系统相关的特定处理阶段内嵌在业务系统中,主要负责数据校验、业务处理并保存和查询业务数据。

本发明的有益效果为:

1.本发明通过把公共的处理阶段抽离出来做一个子系统,各业务条线的程序员只需要关心业务数据的存取的逻辑,大大简化了业务侧开发工作。

附图说明

图1为本发明提出的数据导入导出子系统中的总体流程结构示意图;

图2为本发明提出的数据导入导出子系统中的导入/导出系统内部结构示意图;

图3为本发明提出的数据导入导出子系统中的业务子系统结构示意图;

图4为本发明提出的数据导入导出子系统中的导入/导出任务状态结构示意图。

具体实施方式

下面结合具体实施方式对本专利的技术方案作进一步详细地说明。

数据导入导出子系统,包括业务相关部分处理阶段和业务不相关部分处理阶段,所述业务不相关处理阶段包括任务队列、任务调度器、导入流程管理器、导出流程管理器,所述业务相关部分处理阶段包括业务系统相关的公共阶段和也业务相关的特定处理阶段。

所述任务队列负责当用户提交任务后,不进行立即执行,先保存此队列至任务缓冲区。

所述任务调度器是根据系统资源使用情况从任务缓冲区取任务,并根据任务类型分别交由导入处理流程管理器和导出流程管理器处理。

所述导入流程管理器负责处理导入类型的任务,管理每个导入任务的整个处理过程,其具体处理流程如下:

A1:将任务状态置为“Doing”;

A2:(分页)解析导入文件,并组装统一的数据结构;

A3:向业务端发送请求;

A4:将处理结果保存到本地,循环STEP2-STEP4直至所有数据处理完成;

A5:统计该任务的数据导入总数、成功数、失败数等;

A6:将任务状态置为“Done”;

A7:通知用户任务的执行结果。

所述导出处理流程管理器负责处理导出类型的任务,管理每个导出任务的整个处理过程,其具体处理流程如下:

B1:将任务状态置为“Doing”;

B2:创建一个导出结果文件;

B3:组装查询条件,并设置“页大小”;

B4:向业务端发送请求;

B5:检查当前文件是否超过单文件行数限制(可配置),如果是,则新创建一个文件;

B6:将业务端返回的数据列表追加到文件,接着请求下一页的数据,循环遍历STEP4-STEP6,直至业务端返回的数据数量是否小于“页大小”;

B7:将导出的所有文件打成一个压缩包;

B8:将任务状态置为“Done”;

B9:通知用户任务的执行结果。

所述业务系统相关的公共阶段内嵌在业务系统中,主要负责接收请求、请求数据的格式转换、调用具体的导入处理流程管理器、调用具体的导出处理流程管理器和返回数据的格式转换。

所述业务系统相关的特定处理阶段内嵌在业务系统中,主要负责数据校验、业务处理并保存和查询业务数据。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

相关技术
  • 数据导入导出子系统
  • 一种业务数据导入导出方法、系统、计算机设备及介质
技术分类

06120112901139