CN113779122A - 导出数据的方法和装置 - Google Patents
导出数据的方法和装置 Download PDFInfo
- Publication number
- CN113779122A CN113779122A CN202110188974.7A CN202110188974A CN113779122A CN 113779122 A CN113779122 A CN 113779122A CN 202110188974 A CN202110188974 A CN 202110188974A CN 113779122 A CN113779122 A CN 113779122A
- Authority
- CN
- China
- Prior art keywords
- task
- data
- export
- tasks
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000004590 computer program Methods 0.000 claims description 9
- 230000010354 integration Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000003750 conditioning effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000009545 invasion Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种导出数据的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收已注册服务的业务系统发来的数据导出请求,根据所述数据导出请求创建导出任务;根据任务管理规则获取导出任务,调用所获取的导出任务对应的业务系统已注册的服务从业务系统服务端分页获取数据;将获取的数据整合成文件进行存储以导出数据。该实施方式实现了用户导出任务的统一管理,减缓了业务系统的内存压力,提升了用户体验,通过异步处理,更加合理有效的利用资源,避免了资源浪费,使用配置化的方式可以做到无侵入,统一控制,拆解模块化使得对象分工明确,便宜扩展,易插拔,可实现组件化。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种导出数据的方法和装置。
背景技术
现今互联网行业飞速发展,数据都在云端存储,数据的业务方总是会有一些短期的数据分析,这个时候就会涉及到数据的导出,但是导出往往带着大量的数据,会占用应用服务器的内存,严重情况下会影响应用服务器的正常使用,这时候就需要一个统一导出管理,目前主要使用Spring框架、aop(Aspect Oriented Programming、面向切面编程)、redis(一种数据库)、poi(Point of Information、信息点)、rmi(Remote Method Invocation,远程方法调用)等技术进行导出。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:现有的导出技术无法动态的增加需要的内存,在高并发情况下会造成内存溢出,并且受外界机器性能影响较大。
发明内容
有鉴于此,本发明实施例提供一种导出数据的方法和装置,提供了完善的架构设计支持和标准的对接接口,实现用户导出任务的统一管理,减缓了业务系统的内存压力,提升了用户体验,通过异步处理,更加合理有效的利用资源,避免了资源浪费,使用配置化的方式可以做到无侵入,统一控制,拆解模块化使得对象分工明确,便宜扩展,易插拔,可实现组件化。
为实现上述目的,根据本发明实施例的一个方面,提供了一种导出数据的方法。
一种导出数据的方法,包括,接收已注册服务的业务系统发来的数据导出请求,根据所述数据导出请求创建导出任务;根据任务管理规则获取导出任务,调用所获取的导出任务对应的业务系统已注册的服务从业务系统服务端分页获取数据;将获取的数据整合成文件进行存储以导出数据。
可选地,根据所述数据导出请求创建导出任务之后,还包括:将创建的导出任务放入任务队列中;并且,根据任务管理规则获取导出任务包括:通过定时任务,每隔一段时间定时获取当前正在执行的任务个数,并将所述任务个数与设置的任务个数上限对比;若所述任务个数小于所述任务个数上限,则从所述任务队列中按顺序获取导出任务,并更新所述任务个数,直至所述任务个数达到所述任务个数上限。
可选地,根据任务管理规则获取导出任务之后,采用异步执行的方式进行所述导出任务的处理,并记录任务执行日志,所述任务执行日志包括任务执行时间、状态和次数。
可选地,调用所获取的导出任务对应的业务系统已注册的服务从业务系统服务端分页获取数据包括:根据设定的分页请求参数生成第一分页请求,所述分页请求参数包括请求获取数据的页码及每页显示的数据量;根据所述第一分页请求调用所获取的导出任务对应的业务系统已注册的服务,通过所述业务系统提供的数据查询接口获取所述第一分页请求对应的数据以及导出数据总量;根据所述导出数据总量和所述每页显示的数据量确定待生成的第二分页请求的个数,并根据所述分页请求参数生成对应个数的第二分页请求;对于每个第二分页请求,根据所述第二分页请求从业务系统服务端获取所述第二分页请求对应的数据。
可选地,将获取的数据整合成文件进行存储包括:将获取的数据整合成文件并转换成字节数据,将所述字节数据上传至云存储系统进行存储。
可选地,将获取的数据整合成文件进行存储之后,还包括:根据所述文件的存储路径生成下载链接,并展示所述下载链接;将当前正在执行的任务个数减一,修改所述导出任务的任务状态为已完成。
可选地,所述方法还包括:若调用所获取的导出任务对应的业务系统已注册的服务从服务端获取数据失败,则将当前正在执行的任务个数减一,所述导出任务的执行次数加一,修改所述导出任务的任务状态为待执行,将所述导出任务重新放入任务队列等待下次执行。
可选地,所述方法还包括若所述导出任务的执行次数超过设置的任务执行次数上限,则修改所述导出任务的任务状态为执行失败且不再放入所述任务队列中。
根据本发明实施例的另一方面,提供了一种导出数据的装置。
一种导出数据的装置,所述装置包括:请求接收模块,用于接收已注册服务的业务系统发来的数据导出请求,根据所述数据导出请求创建导出任务;获取数据模块,用于根据任务管理规则获取导出任务,调用所获取的导出任务对应的业务系统已注册的服务从业务系统服务端分页获取数据;整合上传模块,用于将获取的数据整合成文件进行存储以导出数据。
可选地,所述装置还包括任务管理模块,用于将创建的导出任务放入任务队列,所述获取数据模块还用于通过定时任务,每隔一段时间定时获取当前正在执行的任务个数,并将所述任务个数与设置的任务个数上限对比;若所述任务个数小于所述任务个数上限,则从所述任务队列中按顺序获取导出任务,并更新所述任务个数,直至所述任务个数达到所述任务个数上限。
可选地,所述装置还包括执行管理模块,用于采用异步执行的方式进行所述导出任务的处理,并记录任务执行日志,所述任务执行日志包括任务执行时间、状态和次数。
可选地,所述数据获取模块还用于:根据设定的分页请求参数生成第一分页请求,所述分页请求参数包括请求获取数据的页码及每页显示的数据量;根据所述第一分页请求调用所获取的导出任务对应的业务系统已注册的服务,通过所述业务系统提供的数据查询接口获取所述第一分页请求对应的数据以及导出数据总量;根据所述导出数据总量和所述每页显示的数据量确定待生成的第二分页请求的个数,并根据所述分页请求参数生成对应个数的第二分页请求;对于每个第二分页请求,根据所述第二分页请求从业务系统服务端获取所述第二分页请求对应的数据。
可选地,所述整合上传模块还用于,将获取的数据整合成文件并转换成字节数据,将所述字节数据上传至云存储系统进行存储。
可选地,所述装置还包括文件下载模块,用于根据所述文件的存储路径生成下载链接,并展示所述下载链接;将当前正在执行的任务个数减一,修改所述导出任务的任务状态为已完成。
可选地,所述装置还包括数据获取失败模块,用于若调用所获取的导出任务对应的业务系统已注册的服务从服务端获取数据失败,则将当前正在执行的任务个数减一,所述导出任务的执行次数加一,修改所述导出任务的任务状态为待执行,将所述导出任务重新放入任务队列等待下次执行。
可选地,所述装置还包括任务执行失败模块,用于若所述导出任务的执行次数超过设置的任务执行次数上限,则修改所述导出任务的任务状态为执行失败且不再放入所述任务队列中。
根据本发明实施例的又一方面,提供了一种导出数据的电子设备。
一种导出数据的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所提供的导出数据的方法。
根据本发明实施例的再一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的导出数据的方法。
上述发明中的一个实施例具有如下优点或有益效果:采用接收已注册服务的业务系统发来的数据导出请求,根据所述数据导出请求创建导出任务;根据任务管理规则获取导出任务,调用所获取的导出任务对应的业务系统已注册的服务从业务系统服务端分页获取数据;将获取的数据整合成文件进行存储以导出数据的技术手段,实现了用户导出任务的统一管理,减缓了业务系统的内存压力,提升了用户体验,通过异步处理,更加合理有效的利用资源,避免了资源浪费,使用配置化的方式可以做到无侵入,统一控制,拆解模块化使得对象分工明确,便宜扩展,易插拔,可实现组件化。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的导出数据的方法的主要步骤示意图;
图2是根据本发明实施例的导出中心的架构设计示意图;
图3是根据本发明一个实施例的通用分页接口的实现代码示意图;
图4是根据本发明实施例的导出数据的方法的流程示意图;
图5是根据本发明一个实施例的导出任务表的结构示意图;
图6是根据本发明一个实施例的任务管理页面示意图;
图7是根据本发明实施例的导出数据的装置的主要模块示意图;
图8是本发明实施例可以应用于其中的示例性系统架构图;
图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的导出数据的方法的主要步骤示意图。本发明实施例针对的场景是需要进行大量数据导出,占用应用服务器内存,影响服务器正常使用的问题,如图1所示,本发明实施例的导出数据的方法,主要包括如下的步骤S101至步骤S103。
步骤S101:接收已注册服务的业务系统发来的数据导出请求,根据数据导出请求创建导出任务;
步骤S102:根据任务管理规则获取导出任务,调用所获取的导出任务对应的业务系统已注册的服务从业务系统服务端分页获取数据;
步骤S103:将获取的数据整合成文件进行存储以导出数据。
根据上述的步骤S101至步骤S103,本发明通过使用业务系统根据标准接口提供的数据查询服务来进行数据导出;根据业务系统导出请求创建导出任务;导出中心页面统一管理导出任务,实现了通过第三方导出中心来管理导出数据,可以减轻业务系统的导出压力,使用配置化的方式可以做到无侵入,统一控制,拆解模块化使得对象分工明确,便宜扩展,易插拔,可实现组件化。
根据本发明的一个实施例,根据数据导出请求创建导出任务之后,还包括:将创建的导出任务放入任务队列中;并且,根据任务管理规则获取导出任务包括:通过定时任务,每隔一段时间定时获取当前正在执行的任务个数,并将任务个数与设置的任务个数上限对比;若任务个数小于任务个数上限,则从任务队列中按顺序获取导出任务,并更新任务个数,直至任务个数达到任务个数上限。
在本发明的实施例中,根据任务管理规则获取导出任务之后,采用异步执行的方式进行导出任务的处理,并记录任务执行日志,任务执行日志包括任务执行时间、状态和次数。
根据本发明的另一个实施例,调用所获取的导出任务对应的业务系统已注册的服务从业务系统服务端分页获取数据包括:根据设定的分页请求参数生成第一分页请求,分页请求参数包括请求获取数据的页码及每页显示的数据量;根据第一分页请求调用所获取的导出任务对应的业务系统已注册的服务,通过业务系统提供的数据查询接口获取第一分页请求对应的数据以及导出数据总量;根据导出数据总量和每页显示的数据量确定待生成的第二分页请求的个数,并根据分页请求参数生成对应个数的第二分页请求;对于每个第二分页请求,根据第二分页请求从业务系统服务端获取第二分页请求对应的数据。
根据本发明的又一个实施例,将获取的数据整合成文件进行存储包括:将获取的数据整合成文件并转换成字节数据,将字节数据上传至云存储系统进行存储。
根据本发明的再一个实施例,将获取的数据整合成文件进行存储之后,还包括:根据文件的存储路径生成下载链接,并展示下载链接;将当前正在执行的任务个数减一,修改导出任务的任务状态为已完成。
在本发明的实施例中,若调用所获取的导出任务对应的业务系统已注册的服务从服务端获取数据失败,则将当前正在执行的任务个数减一,导出任务的执行次数加一,修改导出任务的任务状态为待执行,将导出任务重新放入任务队列等待下次执行。
在本发明的实施例中,若导出任务的执行次数超过设置的任务执行次数上限,则修改导出任务的任务状态为执行失败且不再放入任务队列中。
图2是根据本发明实施例的导出中心的架构设计示意图。如图2所示,本发明的导出中心主要包括注册中心、导出中心后台和导出中心前端3个部分,同时导出中心提供标准接口以供需要导出数据的业务系统进行调用,从而使得业务系统调用导出中心来进行数据导出的管理。
本发明的导出中心在进行数据导出时,实现原理主要如下:
1、首先业务系统按照导出中心定义的标准接口提供实现类,该实现类用于从业务系统中查询或读取待导出的数据,并把该实现类以服务的形式注册到注册中心中;
2、导出中心在接收到已注册服务的业务系统发来的数据导出请求后,根据数据导出请求创建导出任务,将创建的导出任务放入任务队列中,即:导出中心的系统使用方(也就是业务系统)在导出中心的系统中点击导出按钮,从而触发了由业务系统向导出中心发送创建导出任务的请求,并将生成的导出任务放入导出任务队列中;
3、根据任务管理规则获取导出任务,通过定时任务,每隔一段时间获取当前正在执行的任务个数,并将该任务个数与设置的任务个数上限对比;若任务个数小于任务个数上限,则从任务队列中按顺序获取导出任务,并更新正在执行的任务个数,直至任务个数达到任务个数上限。在从任务队列中取出导出任务时,还需要获取任务队列中剩余的任务个数,若剩余任务个数小于要获取的导出任务的个数,则仅需将任务队列中剩余的导出任务获取即可,不是必须要满足当前正在执行的任务个数达到任务个数上限。即:定时任务每隔一段时间定时执行,扫描获取当前正在执行的任务个数,并和设置的任务个数上限对比,得到待补充的任务个数,然后从任务队列中获取与待补充的任务个数相等数量的导出任务;
4、在导出中心获取到一个导出任务后,将调用所获取的导出任务对应的业务系统已注册的服务从业务系统的服务端分页获取数据,并将每次获取的数据整合成文件进行存储以导出数据,根据文件的存储路径生成下载链接,并展示下载链接。然后,将当前正在执行的任务个数减一,修改该导出任务的任务状态为已完成。其中,当导出中心从任务队列中获取到一个导出任务后,将当前正在执行的任务个数加1,然后根据导出任务的任务信息向注册中心发起分页请求数据,以调用注册中心注册的该导出任务的服务,实现从对应的业务系统中查询或读取数据。在从业务系统的服务端分页获取数据后,将获取的数据整合成一个文件并上传到云存储系统中,获取下载链接并展示在导出中心前端的导出任务管理页面中,以用于提供数据下载服务;然后,将当前正在执行的任务个数减一,记录任务执行时间,执行状态。
在本发明的实施例中,通过分页向业务系统获取数据可以减少业务系统的内存压力,通过控制执行任务的个数可以防止导出中心的系统服务内存雪崩。
分页获取数据是指根据设定的分页请求参数生成第一分页请求,分页请求参数包括请求获取数据的页码及每页显示的数据量;根据第一分页请求调用所获取的导出任务对应的业务系统已注册的服务,通过业务系统提供的数据查询接口获取第一分页请求对应的数据以及导出数据总量;根据导出数据总量和每页显示的数据量确定待生成的第二分页请求的个数,并根据分页请求参数生成对应个数的第二分页请求;对于每个第二分页请求,根据第二分页请求从业务系统服务端获取第二分页请求对应的数据,通过分页向业务系统获取数据可以减少业务系统内存压力,控制执行任务个数防止导出系统服务内存雪崩。
图3是根据本发明一个实施例的通用分页接口的实现代码示意图。业务系统会为其注册的服务提供标准的数据查询接口,导出中心分页调用该服务,以通过业务系统提供的分页接口获取需要导出的数据。在本发明的实施例中,分页请求的Page对象中传入的分页请求参数包括pageNum(页码)和pageSize(一页数量),以及taskType(导出类型)。其中,页码pageNum用来定义每次进行分页查询时所查询的页数;一页数量pageSize用来定义每次进行分页查询时,一页上可显示的数据个数;导出类型taskType用来区分业务系统的具体导出业务。之后,将分页请求参数封装到conditionParams字符串中以生成分页请求,其中,conditionParams字符串为json格式的string字符串,用于放置这次分页请求的入参。
图4是根据本发明实施例的导出数据的方法的流程示意图,如图4所示,在本发明的实施例中,导出数据的方法的流程主要包括以下的步骤1至步骤5。
步骤1、将已创建的导出任务统一放入redis数据库中进行管理,通过定时任务,每隔一段时间定时获取当前正在执行的任务个数,并将该任务个数与设置的任务个数上限对比,若任务个数小于任务个数上限,则从任务队列中按顺序获取导出任务,并更新任务个数,直至任务个数达到任务个数上限。定时任务执行时,先从redis中获取当前正在执行的任务个数,若等于或超过设置的任务个数上限则这次不进行任务执行,若小于任务上限,则查询待执行任务列表。
步骤2、根据任务管理规则获取导出任务,采用异步执行的方式进行导出任务的处理,并记录任务执行日志,任务执行日志包括任务执行时间、状态和次数。在具体实施时,可以通过async注解的方式异步执行该导出任务,然后将当前任务执行总数加一。
步骤3、调用所获取的导出任务对应的业务系统已注册的服务,从业务系统的服务端分页获取数据。之后,将分页获取的数据进行整合后转换成字节数据,并将数据上传到云存储系统进行存储,并获取云存储系统中该文件的存储位置作为下载链接。然后,将正在执行的任务个数减一,并将该导出任务的任务状态修改为已完成。最后,将下载链接展示到导出中心的管理页面中,以使得有需要的系统可以根据该下载链接下载数据。
图5是根据本发明一个实施例的导出任务表的结构示意图,如图5所示,导出任务表包括任务创建人、创建的时间,任务执行的次数、状态等,主要用来存储导出任务数据。
步骤4、在分页获取数据时,若调用所获取的导出任务对应的业务系统已注册的服务从服务端获取数据失败,则将当前正在执行的任务个数减一,导出任务的执行次数加一,修改导出任务的任务状态为待执行,将导出任务重新放入任务队列等待下次执行,即任务执行失败,当前执行任务总数减一,修改状态为待执行,执行次数加一。
步骤5、若导出任务的执行次数超过设置的任务执行次数上限,则修改导出任务的任务状态为执行失败且不再放入任务队列中。若任务执行失败判断执行总数有没有超过执行次数上限,若超过,则修改任务状态为执行失败。
对于执行失败且执行次数超过设置的执行次数上限的导出任务,后续还可通过在导出页面中进行操作,以将其重新加入队列,再次执行。
图6是根据本发明一个实施例的任务管理页面示意图,如图6所示,用户可在导出任务管理页面中点击重新执行按钮来重新执行失败的任务。
图7是根据本发明实施例的导出数据的装置的主要模块示意图,如图7所示,本发明实施例的导出数据的装置700主要包括接收请求接收701、获取数据模块702和整合上传模块703。
请求接收701:用于接收已注册服务的业务系统发来的数据导出请求,根据数据导出请求创建导出任务;
获取数据模块702:用于根据任务管理规则获取导出任务,调用所获取的导出任务对应的业务系统已注册的服务从服务端分页获取数据;
整合上传模块703:用于将获取的数据整合成文件进行存储以导出数据。
根据本发明的一个实施例,导出数据的装置700还包括任务管理模块(图中未示出),用于将创建的导出任务放入任务队列,获取数据模块702还用于,通过定时任务,每隔一段时间定时获取当前正在执行的任务个数,并将任务个数与设置的任务个数上限对比;若任务个数小于任务个数上限,则从任务队列中按顺序获取导出任务,并更新任务个数,直至任务个数达到任务个数上限。
根据本发明的另一个实施例,导出数据的装置700还包括执行管理模块(图中未示出),用于采用异步执行的方式进行导出任务的处理,并记录任务执行日志,任务执行日志包括任务执行时间、状态和次数。
在本发明的实施例中,数据获取模块702还用于:根据设定的分页请求参数生成第一分页请求,分页请求参数包括请求获取数据的页码及每页显示的数据量;根据第一分页请求调用所获取的导出任务对应的业务系统已注册的服务,通过业务系统提供的数据查询接口获取第一分页请求对应的数据以及导出数据总量;根据导出数据总量和每页显示的数据量确定待生成的第二分页请求的个数,并根据分页请求参数生成对应个数的第二分页请求;对于每个第二分页请求,根据第二分页请求从业务系统服务端获取第二分页请求对应的数据。
在本发明的实施例中,整合上传模块703还用于,将获取的数据整合成文件并转换成字节数据,将字节数据上传至云存储系统进行存储。
在本发明的实施例中,导出数据的装置700还包括文件下载模块(图中未示出),用于根据文件的存储路径生成下载链接,并展示下载链接;将当前正在执行的任务个数减一,修改导出任务的任务状态为已完成。
在本发明的实施例中,导出数据的装置700还包括数据获取失败模块(图中未示出),用于若调用所获取的导出任务对应的业务系统已注册的服务从服务端获取数据失败,则将当前正在执行的任务个数减一,导出任务的执行次数加一,修改导出任务的任务状态为待执行,将导出任务重新放入任务队列等待下次执行。
根据本发明的又一个实施例,导出数据的装置700还包括任务执行失败模块,用于若导出任务的执行次数超过设置的任务执行次数上限,则修改导出任务的任务状态为执行失败且不再放入任务队列中。
图8示出了可以应用本发明实施例的导出数据的方法或导出数据的装置的示例性系统架构800。
如图8所示,系统架构800可以包括终端设备801、802、803,网络804和服务器805。网络804用以在终端设备801、802、803和服务器805之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备801、802、803通过网络804与服务器805交互,以接收或发送消息等。终端设备801、802、803上可以安装有各种客户端应用,例如订单系统类、搜索系统类、数据下载工具、社交通讯类等(仅为示例)。
终端设备801、802、803可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器805可以是提供各种服务的服务器,例如对用户利用终端设备801、802、803所浏览的订单系统类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的数据导出请求等进行分析等处理,并将处理结果(例如需要导出的数据--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的数据导出的方法一般由服务器805执行,相应地,数据导出的装置一般设置于服务器805中。
应该理解,图8中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图9,其示出了适于用来实现本发明实施例的终端设备或服务器的计算机系统900的结构示意图。图9示出的终端设备或服务器仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括请求接收模块、获取数据模块、整合上传模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,请求接收模块还可以被描述为“用于接收已注册服务的业务系统发来的数据导出请求,根据所述数据导出请求创建导出任务的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收已注册服务的业务系统发来的数据导出请求,根据所述数据导出请求创建导出任务;根据任务管理规则获取导出任务,调用所获取的导出任务对应的业务系统已注册的服务从业务系统服务端分页获取数据;将获取的数据整合成文件进行存储以导出数据。
根据本发明实施例的技术方案,采用接收已注册服务的业务系统发来的数据导出请求,根据数据导出请求创建导出任务;根据任务管理规则获取导出任务,调用所获取的导出任务对应的业务系统已注册的服务从业务系统服务端分页获取数据;将获取的数据整合成文件进行存储以导出数据的技术手段,实现了用户导出任务的统一管理,减缓了业务系统的内存压力,提升了用户体验,通过异步处理,更加合理有效的利用资源,避免了资源浪费,使用配置化的方式可以做到无侵入,统一控制,拆解模块化使得对象分工明确,便宜扩展,易插拔,可实现组件化。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (11)
1.一种导出数据的方法,其特征在于,包括:
接收已注册服务的业务系统发来的数据导出请求,根据所述数据导出请求创建导出任务;
根据任务管理规则获取导出任务,调用所获取的导出任务对应的业务系统已注册的服务从业务系统服务端分页获取数据;
将获取的数据整合成文件进行存储以导出数据。
2.根据权利要求1所述方法,其特征在于,根据所述数据导出请求创建导出任务之后,还包括:
将创建的导出任务放入任务队列中;
并且,根据任务管理规则获取导出任务包括:
通过定时任务,每隔一段时间定时获取当前正在执行的任务个数,并将所述任务个数与设置的任务个数上限对比;
若所述任务个数小于所述任务个数上限,则从所述任务队列中按顺序获取导出任务,并更新所述任务个数,直至所述任务个数达到所述任务个数上限。
3.根据权利要求1所述方法,其特征在于,根据任务管理规则获取导出任务之后,采用异步执行的方式进行所述导出任务的处理,记录任务执行日志,所述任务执行日志包括任务执行时间、状态和次数。
4.根据权利要求1所述方法,其特征在于,调用所获取的导出任务对应的业务系统已注册的服务从业务系统服务端分页获取数据包括:
根据设定的分页请求参数生成第一分页请求,所述分页请求参数包括请求获取数据的页码及每页显示的数据量;
根据所述第一分页请求调用所获取的导出任务对应的业务系统已注册的服务,通过所述业务系统提供的数据查询接口获取所述第一分页请求对应的数据以及导出数据总量;
根据所述导出数据总量和所述每页显示的数据量确定待生成的第二分页请求的个数,并根据所述分页请求参数生成对应个数的第二分页请求;
对于每个第二分页请求,根据所述第二分页请求从业务系统服务端获取所述第二分页请求对应的数据。
5.根据权利要求1所述方法,其特征在于,将获取的数据整合成文件进行存储包括:
将获取的数据整合成文件并转换成字节数据,将所述字节数据上传至云存储系统进行存储。
6.根据权利要求1或5所述方法,其特征在于,将获取的数据整合成文件进行存储之后,还包括:
根据所述文件的存储路径生成下载链接,并展示所述下载链接;
将当前正在执行的任务个数减一,修改所述导出任务的任务状态为已完成。
7.根据权利要求1所述方法,其特征在于,还包括:
若调用所获取的导出任务对应的业务系统已注册的服务从服务端获取数据失败,则将当前正在执行的任务个数减一,所述导出任务的执行次数加一,修改所述导出任务的任务状态为待执行,将所述导出任务重新放入任务队列等待下次执行。
8.根据权利要求7所述方法,其特征在于,还包括:
若所述导出任务的执行次数超过设置的任务执行次数上限,则修改所述导出任务的任务状态为执行失败且不再放入所述任务队列中。
9.一种导出数据的装置,其特征在于,包括:
请求接收模块,用于接收已注册服务的业务系统发来的数据导出请求,根据所述数据导出请求创建导出任务;
获取数据模块,用于根据任务管理规则获取导出任务,调用所获取的导出任务对应的业务系统已注册的服务从业务系统服务端分页获取数据;
整合上传模块,用于将获取的数据整合成文件进行存储以导出数据。
10.一种导出数据的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110188974.7A CN113779122B (zh) | 2021-02-19 | 2021-02-19 | 导出数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110188974.7A CN113779122B (zh) | 2021-02-19 | 2021-02-19 | 导出数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113779122A true CN113779122A (zh) | 2021-12-10 |
CN113779122B CN113779122B (zh) | 2023-11-03 |
Family
ID=78835607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110188974.7A Active CN113779122B (zh) | 2021-02-19 | 2021-02-19 | 导出数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113779122B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117194549A (zh) * | 2023-11-07 | 2023-12-08 | 上海柯林布瑞信息技术有限公司 | 基于任务数据配置的数据传输方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776829A (zh) * | 2016-11-28 | 2017-05-31 | 成都广达新网科技股份有限公司 | 一种数据导出系统及其工作方法 |
CN106919684A (zh) * | 2017-03-02 | 2017-07-04 | 百度在线网络技术(北京)有限公司 | 数据导出方法、装置、设备及存储介质 |
CN110413978A (zh) * | 2019-08-02 | 2019-11-05 | 中国工商银行股份有限公司 | 数据分页导出方法、装置、计算机设备和存储介质 |
CN110580212A (zh) * | 2019-09-09 | 2019-12-17 | 香港乐蜜有限公司 | 应用程序的数据导出方法、装置、电子设备及存储介质 |
WO2020015150A1 (zh) * | 2018-07-18 | 2020-01-23 | 平安科技(深圳)有限公司 | 数据表动态导出方法、装置、计算机设备及存储介质 |
US10691558B1 (en) * | 2016-09-22 | 2020-06-23 | Amazon Technologies, Inc. | Fault tolerant data export using snapshots |
CN111435354A (zh) * | 2019-01-14 | 2020-07-21 | 北京京东尚科信息技术有限公司 | 数据导出方法、装置、存储介质及电子设备 |
-
2021
- 2021-02-19 CN CN202110188974.7A patent/CN113779122B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10691558B1 (en) * | 2016-09-22 | 2020-06-23 | Amazon Technologies, Inc. | Fault tolerant data export using snapshots |
CN106776829A (zh) * | 2016-11-28 | 2017-05-31 | 成都广达新网科技股份有限公司 | 一种数据导出系统及其工作方法 |
CN106919684A (zh) * | 2017-03-02 | 2017-07-04 | 百度在线网络技术(北京)有限公司 | 数据导出方法、装置、设备及存储介质 |
WO2020015150A1 (zh) * | 2018-07-18 | 2020-01-23 | 平安科技(深圳)有限公司 | 数据表动态导出方法、装置、计算机设备及存储介质 |
CN111435354A (zh) * | 2019-01-14 | 2020-07-21 | 北京京东尚科信息技术有限公司 | 数据导出方法、装置、存储介质及电子设备 |
CN110413978A (zh) * | 2019-08-02 | 2019-11-05 | 中国工商银行股份有限公司 | 数据分页导出方法、装置、计算机设备和存储介质 |
CN110580212A (zh) * | 2019-09-09 | 2019-12-17 | 香港乐蜜有限公司 | 应用程序的数据导出方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
王怡;王昭;梁生吉;: "基于大数据技术的多平台协同交易数据查询系统的构建", 中国金融电脑, no. 12 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117194549A (zh) * | 2023-11-07 | 2023-12-08 | 上海柯林布瑞信息技术有限公司 | 基于任务数据配置的数据传输方法及装置 |
CN117194549B (zh) * | 2023-11-07 | 2024-01-26 | 上海柯林布瑞信息技术有限公司 | 基于任务数据配置的数据传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113779122B (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110555068A (zh) | 数据导出方法和装置 | |
CN111831461A (zh) | 一种处理业务流程的方法和装置 | |
CN112612467A (zh) | 一种处理基于qiankun的微前端架构的方法和装置 | |
CN113779122B (zh) | 导出数据的方法和装置 | |
CN113742389A (zh) | 一种业务处理方法和装置 | |
CN111767126A (zh) | 分布式批量处理的系统和方法 | |
CN111414154A (zh) | 前端开发的方法、装置、电子设备和存储介质 | |
CN112948138A (zh) | 一种处理消息的方法和装置 | |
CN113760487B (zh) | 一种业务处理方法和装置 | |
CN112860447B (zh) | 一种不同应用间的交互方法和系统 | |
CN113779018A (zh) | 一种数据处理方法和装置 | |
CN113626176A (zh) | 一种业务请求处理方法及装置 | |
CN113760861A (zh) | 一种数据迁移的方法和装置 | |
CN113556370A (zh) | 一种服务调用方法和装置 | |
CN113760274A (zh) | 一种前端组件逻辑注入方法和装置 | |
CN113760693A (zh) | 用于微服务系统的本地调试的方法和装置 | |
CN113722115A (zh) | 调用接口的方法、装置、设备和计算机可读介质 | |
CN113448652A (zh) | 一种请求处理方法和装置 | |
CN112214500A (zh) | 数据对比的方法、装置、电子设备和存储介质 | |
CN112559001A (zh) | 更新应用的方法和装置 | |
CN112241332A (zh) | 一种接口补偿的方法和装置 | |
CN110858240A (zh) | 一种前端模块加载方法和装置 | |
CN110727739B (zh) | 一种数据存储的方法和装置 | |
CN108984189B (zh) | 模块解析的方法和装置 | |
CN113746661A (zh) | 一种业务处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |