CN112100134A - 导出大文件的方法及装置、存储介质及计算机设备 - Google Patents
导出大文件的方法及装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN112100134A CN112100134A CN202010863436.9A CN202010863436A CN112100134A CN 112100134 A CN112100134 A CN 112100134A CN 202010863436 A CN202010863436 A CN 202010863436A CN 112100134 A CN112100134 A CN 112100134A
- Authority
- CN
- China
- Prior art keywords
- server
- large file
- data
- exported
- download address
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000004519 manufacturing process Methods 0.000 abstract description 14
- 230000002159 abnormal effect Effects 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000007670 refining Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 244000141359 Malus pumila Species 0.000 description 1
- 235000021016 apples Nutrition 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003068 static 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/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to 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/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
-
- 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
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/522—Barrier synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种导出大文件的方法及装置、存储介质及计算机设备,该方法包括:第一服务器接收用户端发送的数据导出请求,该数据导出请求中包含待导出数据的标识信息,第一服务器根据数据导出请求中包含的待导出数据的标识信息,确定待导出数据,并利用待导出数据异步生成大文件,第一服务器将大文件上传到第二服务器,第二服务器存储大文件,并生成大文件的下载地址,并将下载地址上传到第三服务器及反馈给用户端,用户端利用下载地址并通过第三服务器从第二服务器中导出大文件。通过异步生产以及选取的服务器,在实现大文件的导出的同时,异步生产可以解决导出大文件的超时问题,而该服务器则可以解决内存溢出异常的问题。
Description
技术领域
本发明涉及大文件导出技术领域,尤其涉及一种导出大文件的方法及装置、存储介质及计算机设备。
背景技术
随着网络信息技术的发展,越来越多的用户需要对千万级大文件进行导出,目前,在导出千万级大文件的时候会出现内存溢出异常和超时的问题,常见的解决方法是找数据库管理员来进行千万级大文件的导出,然后以邮件的形式传递,或者分批分页导出,或者通过后端的逻辑来实现导出,但是这些方法均存在很高的时间和流量成本。
发明内容
基于此,有必要针对上述问题,提出一种导出大文件的方法及装置、存储介质及计算机设备,本发明目的是利用easypoi框架、springboot异步线程和FTP服务器,从而达到大文件导出不超时且内存不会溢出异常的目的。
在第一方面,本申请提供一种导出大文件的方法,所述方法包括:
第一服务器接收用户端发送的数据导出请求,所述数据导出请求中包含待导出数据的标识信息;
所述第一服务器根据所述数据导出请求中包含的所述待导出数据的标识信息,确定所述待导出数据,并利用所述待导出数据异步生成大文件;
所述第一服务器将所述大文件上传到第二服务器;
所述第二服务器存储所述大文件,并生成所述大文件的下载地址,并将所述下载地址上传到第三服务器及反馈给所述用户端;
所述用户端利用所述下载地址并通过所述第三服务器从所述第二服务器中导出所述大文件。
可选的,所述利用所述待导出数据异步生成大文件,包括:
所述第一服务器利用easypoi框架对所述待导出数据进行解析;
所述第一服务器通过springboot异步线程将解析后得到的数据生成所述大文件。
可选的,所述第一服务器利用easypoi框架对所述待导出数据进行解析,包括:
所述第一服务器利用所述easypoi框架进行分页查询,将所述待导出数据按照预设大小划分成多个子数据。
可选的,所述第一服务器通过springboot异步线程将解析后得到的数据生成所述大文件,包括:
所述第一服务器通过所述springboot异步线程将多个所述子数据同步生成对应的子文件,将多个所述子文件组成所述大文件。
可选的,所述第一服务器根据所述数据导出请求中包含的所述待导出数据的标识信息,确定所述待导出数据,并利用所述待导出数据异步生成大文件,之后还包括:
所述第一服务器通过springboot异步线程向所述用户端发送状态通知,所述状态通知用于通知所述用户端所述大文件的生成状态。
可选的,所述用户端利用所述下载地址并通过所述第三服务器从所述第二服务器中导出所述大文件,包括:
所述用户端向所述第三服务器发送大文件导出请求,所述大文件导出请求中包含所述下载地址;
所述第三服务器查找已存储的下载地址列表,若查找到所述下载地址,则根据所述下载地址从所述第二服务器获取大文件的文件流,并反馈给所述用户端。
可选的,所述根据所述下载地址从所述第二服务器获取大文件的文件流,包括:
所述第三服务器向所述第二服务器发送下载请求,所述下载请求中包含所述下载地址;
所述第三服务器接收所述第二服务器反馈的所述下载地址对应的大文件的文件流。
在第二方面,本申请提供一种导出大文件的装置,所述装置包括:
接收模块,用于第一服务器接收用户端发送的数据导出请求,所述数据导出请求中包含待导出数据的标识信息;
确定模块,用于所述第一服务器根据所述数据导出请求中包含的所述待导出数据的标识信息,确定所述待导出数据,并利用所述待导出数据异步生成大文件;
上传模块,用于所述第一服务器将所述大文件上传到第二服务器;
生成模块,用于所述第二服务器存储所述大文件,并生成所述大文件的下载地址,并将所述下载地址上传到第三服务器及反馈给所述用户端;
导出模块,用于所述用户端利用所述下载地址并通过所述第三服务器从所述第二服务器中导出所述大文件。
在第三方面,本申请实施例还提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
第一服务器接收用户端发送的数据导出请求,所述数据导出请求中包含待导出数据的标识信息;
所述第一服务器根据所述数据导出请求中包含的所述待导出数据的标识信息,确定所述待导出数据,并利用所述待导出数据异步生成大文件;
所述第一服务器将所述大文件上传到第二服务器;
所述第二服务器存储所述大文件,并生成所述大文件的下载地址,并将所述下载地址上传到第三服务器及反馈给所述用户端;
所述用户端利用所述下载地址并通过所述第三服务器从所述第二服务器中导出所述大文件。
在第四方面,本申请实施例还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
第一服务器接收用户端发送的数据导出请求,所述数据导出请求中包含待导出数据的标识信息;
所述第一服务器根据所述数据导出请求中包含的所述待导出数据的标识信息,确定所述待导出数据,并利用所述待导出数据异步生成大文件;
所述第一服务器将所述大文件上传到第二服务器;
所述第二服务器存储所述大文件,并生成所述大文件的下载地址,并将所述下载地址上传到第三服务器及反馈给所述用户端;
所述用户端利用所述下载地址并通过所述第三服务器从所述第二服务器中导出所述大文件。
采用本发明实施例,具有如下有益效果:
采用本发明的一种导出大文件的方法,该方法包括:第一服务器接收用户端发送的数据导出请求,该数据导出请求中包含待导出数据的标识信息,第一服务器根据数据导出请求中包含的待导出数据的标识信息,确定待导出数据,并利用待导出数据异步生成大文件,第一服务器将大文件上传到第二服务器,第二服务器存储大文件,并生成大文件的下载地址,并将下载地址上传到第三服务器及反馈给用户端,用户端利用下载地址并通过第三服务器从第二服务器中导出大文件。通过异步生产以及选取的服务器,在实现大文件的导出的同时,异步生产可以解决导出大文件的超时问题,而该服务器则可以解决内存溢出异常的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为本申请实施例中导出大文件的方法的流程示意图;
图2为本申请图1所示实施例中步骤102的细化步骤的流程示意图;
图3为本申请实施例中导出大文件的方法的另一流程示意图;
图4为本申请图1所示实施例中步骤105的细化步骤的流程示意图;
图5为本申请图4所示实施例中步骤402的细化步骤的流程示意图;
图6为本申请实施例中导出大文件的装置的结构示意图;
图7为本申请实施例中计算机设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本申请实施例中导出大文件的方法的流程示意图,该方法包括:
步骤101、第一服务器接收用户端发送的数据导出请求,所述数据导出请求中包含待导出数据的标识信息;
步骤102、所述第一服务器根据所述数据导出请求中包含的所述待导出数据的标识信息,确定所述待导出数据,并利用所述待导出数据异步生成大文件;
步骤103、所述第一服务器将所述大文件上传到第二服务器;
步骤104、所述第二服务器存储所述大文件,并生成所述大文件的下载地址,并将所述下载地址上传到第三服务器及反馈给所述用户端;
在本申请实施例中,第二服务器为文件传输协议FTP(File Transfer ProtocolServer)服务器,FTP服务器是在互联网上提供文件存储和访问服务的计算机,FTP服务器是依照FTP协议提供服务的,FTP协议是专门用来传输文件的协议,可以理解的是,支持FTP协议的服务器就是FTP服务器。一般来说,用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一,Internet上早期实现传输文件,并不是一件容易的事,我们知道Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Internet上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix操作系统的服务器,也有运行Dos、Windows操作系统的PC机和运行MacOS操作系统的苹果机等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。
进一步地,与大多数Internet服务一样,FTP也是一个客户机/服务器系统,用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机,比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件传送至用户的机器上,客户机程序代表用户接收到这个文件,将其存放在用户目录中。
步骤105、所述用户端利用所述下载地址并通过所述第三服务器从所述第二服务器中导出所述大文件。
在本申请实施例中,一种导出大文件的方法,该方法包括:第一服务器接收用户端发送的数据导出请求,该数据导出请求中包含待导出数据的标识信息,第一服务器根据数据导出请求中包含的待导出数据的标识信息,确定待导出数据,并利用待导出数据异步生成大文件,第一服务器将大文件上传到第二服务器,第二服务器存储大文件,并生成大文件的下载地址,并将下载地址上传到第三服务器及反馈给用户端,用户端利用下载地址并通过第三服务器从第二服务器中导出大文件。通过异步生产以及选取的服务器,在实现大文件的导出的同时,异步生产可以解决导出大文件的超时问题,而该服务器则可以解决内存溢出异常的问题。
在一种可行的实现方式中,如图2所示,为本申请图1所示实施例中步骤102的细化步骤的流程示意图,包括:
步骤201、所述第一服务器利用easypoi框架对所述待导出数据进行解析;
在本申请实施例中,所述第一服务器利用所述easypoi框架进行分页查询,将所述待导出数据按照预设大小划分成多个子数据。可以理解的是,在项目中,有时会出现需要将数据库数据导出报表等功能,这时一般会用到poi库,poi是一个专门给Java程序提供格式文档读写功能的API接口,包括各种微软的格式文档如Excel、Word等,而最常用的还是Excel格式导入导出,Easypoi是在poi接口基础上进行了封装和简化的操作,使用Easypoi导出仅需以下几步:添加依赖项;改造模型,添加注解;从数据库查询数据,使用Easypoi工具类生成Workbook对象,存储为文件(导出)。Easypoi注解包含:Excel,这个是最基本常用的注解,注解在模型字段上,可添加列名、列的排序、列宽、格式等属性;ExcelTarget,用于外层的模型实体,可注解行高、字体大小等属性;ExcelEnity,用于标记实体内部类是否继续穿透;ExcelCollection,用于注解集合字段。
步骤202、所述第一服务器通过springboot异步线程将解析后得到的数据生成所述大文件。
在本申请实施例中,所述第一服务器通过所述springboot异步线程将多个所述子数据同步生成对应的子文件,将多个所述子文件组成所述大文件。可以理解的是,一般的后台管理系统都有导出报表的功能,对于大量数据的报表导出,通常比较耗时,比如管理员点击一个导出按钮,往往要等待很长的时间直到报表成功导出才可以进行下一步操作,显然这种同步的方式已经满足不了需求了,而springboot异步线程则可以解决这个问题,在spring中存在一个接口AsyncConfigurer接口,该接口就是用来配置异步线程池的接口,它有两个方法,getAsyncExecutor和getAsyncUncaughtExceptionHandler,第一个方法是获取一个线程池,第二个方法是用来处理异步线程中发生的异常,这里的接口提供的都是空实现,所以想要开启异步线程机制,那么就需要我们手动实现这个接口,将实现该接口的类标注为spring的配置类,那么就开启了spring的异步可用,那么spring就会通过getAsyncExecutor来获取一个可用的线程来执行某项异步操作,当然,整个异步的开启还需要结合两个注解,一个是@EnableAsync,另外一个是@Async,第一个是标注在配置类中,用来告诉spring异步可用,第二个注解通常标注在某个方法中,当调用这个方法的时候,就会从线程池中获取新的线程来执行它。
进一步地,在spring中处理异步线程异常分成两类,一类是异步方法没有返回值,另一类是异步方法有返回值。对于第一类无返回值情况,我们已经在AsyncConfig配置类中进行了配置,即实现getAsyncUncaughtExceptionHandler方法,也就是当异步线程中的代码发生了异常,就会调用这个方法来进行异常处理;对于第二种情况,即异步方法会有返回值,那么我们如何获取到异步线程处理后的返回值呢,通常的方法是将异步方法的返回值使用接口Future、ListenableFuture或者类AsyncResult进行包装,即将返回值作为泛型传入到上述接口或者类中。
在本申请实施例中,一种导出大文件的方法,该方法包括:第一服务器接收用户端发送的数据导出请求,该数据导出请求中包含待导出数据的标识信息,第一服务器根据数据导出请求中包含的待导出数据的标识信息,确定待导出数据,第一服务器利用easypoi框架对待导出数据进行解析,并通过springboot异步线程将解析后得到的数据生成大文件,第一服务器将大文件上传到第二服务器,第二服务器存储大文件,并生成大文件的下载地址,并将下载地址上传到第三服务器及反馈给用户端,用户端利用下载地址并通过第三服务器从第二服务器中导出大文件。通过利用easypoi框架和springboot异步线程异步生成大文件以及选取的服务器,在实现大文件的导出的同时,springboot异步线程可以解决导出大文件的超时问题,而easypoi框架和该服务器则可以解决内存溢出异常的问题。
为了更好的理解本申请实施例中的技术方案,如图3所示,为本申请实施例中导出大文件的方法的另一流程示意图,该方法包括:
步骤301、第一服务器接收用户端发送的数据导出请求,所述数据导出请求中包含待导出数据的标识信息;
步骤302、所述第一服务器根据所述数据导出请求中包含的所述待导出数据的标识信息,确定所述待导出数据,并利用所述待导出数据异步生成大文件;
步骤303、所述第一服务器通过springboot异步线程向所述用户端发送状态通知,所述状态通知用于通知所述用户端所述大文件的生成状态;
步骤304、所述第一服务器将所述大文件上传到第二服务器;
步骤305、所述第二服务器存储所述大文件,并生成所述大文件的下载地址,并将所述下载地址上传到第三服务器及反馈给所述用户端;
步骤306、所述用户端利用所述下载地址并通过所述第三服务器从所述第二服务器中导出所述大文件。
在本申请实施例中,一种导出大文件的方法,该方法包括:第一服务器接收用户端发送的数据导出请求,该数据导出请求中包含待导出数据的标识信息,第一服务器根据数据导出请求中包含的待导出数据的标识信息,确定待导出数据,并利用待导出数据异步生成大文件,并且同时会异步向用户端发送大文件的生成状态,第一服务器将大文件上传到第二服务器,第二服务器存储大文件,并生成大文件的下载地址,并将下载地址上传到第三服务器及反馈给用户端,用户端利用下载地址并通过第三服务器从第二服务器中导出大文件。通过异步生产以及选取的服务器,在实现大文件的导出的同时,还可以让用户端接收到大文件的生成状态,并且异步生产可以解决导出大文件的超时问题,该服务器则可以解决内存溢出异常的问题。
在一种可行的实现方式中,如图4所示,为本申请图1所示实施例中步骤105的细化步骤的流程示意图,包括:
步骤401、所述用户端向所述第三服务器发送大文件导出请求,所述大文件导出请求中包含所述下载地址;
步骤402、所述第三服务器查找已存储的下载地址列表,若查找到所述下载地址,则根据所述下载地址从所述第二服务器获取大文件的文件流,并反馈给所述用户端。
在本申请实施例中,一种导出大文件的方法,该方法包括:第一服务器接收用户端发送的数据导出请求,该数据导出请求中包含待导出数据的标识信息,第一服务器根据数据导出请求中包含的待导出数据的标识信息,确定待导出数据,并利用待导出数据异步生成大文件,第一服务器将大文件上传到第二服务器,第二服务器存储大文件,并生成大文件的下载地址,并将下载地址上传到第三服务器及反馈给用户端,用户端向第三服务器发送大文件导出请求,大文件导出请求中包含所述下载地址,第三服务器查找已存储的下载地址列表,若查找到下载地址,则根据下载地址从第二服务器获取大文件的文件流,并反馈给用户端。通过异步生产以及选取的服务器,在实现大文件的导出的同时,异步生产可以解决导出大文件的超时问题,而该服务器则可以解决内存溢出异常的问题。
在一种可行的实现方式中,如图5所示,为本申请图4所示实施例中步骤402的细化步骤的流程示意图,包括:
步骤501、所述第三服务器向所述第二服务器发送下载请求,所述下载请求中包含所述下载地址;
步骤502、所述第三服务器接收所述第二服务器反馈的所述下载地址对应的大文件的文件流。
在本申请实施例中,一种导出大文件的方法,该方法包括:第一服务器接收用户端发送的数据导出请求,该数据导出请求中包含待导出数据的标识信息,第一服务器根据数据导出请求中包含的待导出数据的标识信息,确定待导出数据,并利用待导出数据异步生成大文件,第一服务器将大文件上传到第二服务器,第二服务器存储大文件,并生成大文件的下载地址,并将下载地址上传到第三服务器及反馈给用户端,用户端向第三服务器发送大文件导出请求,大文件导出请求中包含所述下载地址,第三服务器查找已存储的下载地址列表,若查找到下载地址,第三服务器向第二服务器发送下载请求,下载请求中包含下载地址,第三服务器接收所述第二服务器反馈的所述下载地址对应的大文件的文件流,并反馈给用户端。通过异步生产以及选取的服务器,在实现大文件的导出的同时,异步生产可以解决导出大文件的超时问题,而该服务器则可以解决内存溢出异常的问题。
如图6所示,为本申请实施例中导出大文件的装置的结构示意图,该装置包括:
接收模块601,用于第一服务器接收用户端发送的数据导出请求,所述数据导出请求中包含待导出数据的标识信息;
确定模块602,用于所述第一服务器根据所述数据导出请求中包含的所述待导出数据的标识信息,确定所述待导出数据,并利用所述待导出数据异步生成大文件;
上传模块603,用于所述第一服务器将所述大文件上传到第二服务器;
生成模块604,用于所述第二服务器存储所述大文件,并生成所述大文件的下载地址,并将所述下载地址上传到第三服务器及反馈给所述用户端;
导出模块605,用于所述用户端利用所述下载地址并通过所述第三服务器从所述第二服务器中导出所述大文件。
在本申请实施例中,一种导出大文件的方法,该方法包括:第一服务器接收用户端发送的数据导出请求,该数据导出请求中包含待导出数据的标识信息,第一服务器根据数据导出请求中包含的待导出数据的标识信息,确定待导出数据,并利用待导出数据异步生成大文件,第一服务器将大文件上传到第二服务器,第二服务器存储大文件,并生成大文件的下载地址,并将下载地址上传到第三服务器及反馈给用户端,用户端利用下载地址并通过第三服务器从第二服务器中导出大文件。通过异步生产以及选取的服务器,在实现大文件的导出的同时,异步生产可以解决导出大文件的超时问题,而该服务器则可以解决内存溢出异常的问题。
图7示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是终端,也可以是服务器。如图7所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现导出大文件的方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行导出大文件的方法。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
第一服务器接收用户端发送的数据导出请求,所述数据导出请求中包含待导出数据的标识信息;
所述第一服务器根据所述数据导出请求中包含的所述待导出数据的标识信息,确定所述待导出数据,并利用所述待导出数据异步生成大文件;
所述第一服务器将所述大文件上传到第二服务器;
所述第二服务器存储所述大文件,并生成所述大文件的下载地址,并将所述下载地址上传到第三服务器及反馈给所述用户端;
所述用户端利用所述下载地址并通过所述第三服务器从所述第二服务器中导出所述大文件。
在一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
第一服务器接收用户端发送的数据导出请求,所述数据导出请求中包含待导出数据的标识信息;
所述第一服务器根据所述数据导出请求中包含的所述待导出数据的标识信息,确定所述待导出数据,并利用所述待导出数据异步生成大文件;
所述第一服务器将所述大文件上传到第二服务器;
所述第二服务器存储所述大文件,并生成所述大文件的下载地址,并将所述下载地址上传到第三服务器及反馈给所述用户端;
所述用户端利用所述下载地址并通过所述第三服务器从所述第二服务器中导出所述大文件。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种导出大文件的方法,其特征在于,所述方法包括:
第一服务器接收用户端发送的数据导出请求,所述数据导出请求中包含待导出数据的标识信息;
所述第一服务器根据所述数据导出请求中包含的所述待导出数据的标识信息,确定所述待导出数据,并利用所述待导出数据异步生成大文件;
所述第一服务器将所述大文件上传到第二服务器;
所述第二服务器存储所述大文件,并生成所述大文件的下载地址,并将所述下载地址上传到第三服务器及反馈给所述用户端;
所述用户端利用所述下载地址并通过所述第三服务器从所述第二服务器中导出所述大文件。
2.根据权利要求1所述的导出大文件的方法,其特征在于,所述利用所述待导出数据异步生成大文件,包括:
所述第一服务器利用easypoi框架对所述待导出数据进行解析;
所述第一服务器通过springboot异步线程将解析后得到的数据生成所述大文件。
3.根据权利要求2所述的导出大文件的方法,其特征在于,所述第一服务器利用easypoi框架对所述待导出数据进行解析,包括:
所述第一服务器利用所述easypoi框架进行分页查询,将所述待导出数据按照预设大小划分成多个子数据。
4.根据权利要求3所述的导出大文件的方法,其特征在于,所述第一服务器通过springboot异步线程将解析后得到的数据生成所述大文件,包括:
所述第一服务器通过所述springboot异步线程将多个所述子数据同步生成对应的子文件,将多个所述子文件组成所述大文件。
5.根据权利要求1所述的导出大文件的方法,其特征在于,所述第一服务器根据所述数据导出请求中包含的所述待导出数据的标识信息,确定所述待导出数据,并利用所述待导出数据异步生成大文件,之后还包括:
所述第一服务器通过springboot异步线程向所述用户端发送状态通知,所述状态通知用于通知所述用户端所述大文件的生成状态。
6.根据权利要求1所述的导出大文件的方法,其特征在于,所述用户端利用所述下载地址并通过所述第三服务器从所述第二服务器中导出所述大文件,包括:
所述用户端向所述第三服务器发送大文件导出请求,所述大文件导出请求中包含所述下载地址;
所述第三服务器查找已存储的下载地址列表,若查找到所述下载地址,则根据所述下载地址从所述第二服务器获取大文件的文件流,并反馈给所述用户端。
7.根据权利要求6所述的导出大文件的方法,其特征在于,所述根据所述下载地址从所述第二服务器获取大文件的文件流,包括:
所述第三服务器向所述第二服务器发送下载请求,所述下载请求中包含所述下载地址;
所述第三服务器接收所述第二服务器反馈的所述下载地址对应的大文件的文件流。
8.一种导出大文件的装置,其特征在于,所述装置包括:
接收模块,用于第一服务器接收用户端发送的数据导出请求,所述数据导出请求中包含待导出数据的标识信息;
确定模块,用于所述第一服务器根据所述数据导出请求中包含的所述待导出数据的标识信息,确定所述待导出数据,并利用所述待导出数据异步生成大文件;
上传模块,用于所述第一服务器将所述大文件上传到第二服务器;
生成模块,用于所述第二服务器存储所述大文件,并生成所述大文件的下载地址,并将所述下载地址上传到第三服务器及反馈给所述用户端;
导出模块,用于所述用户端利用所述下载地址并通过所述第三服务器从所述第二服务器中导出所述大文件。
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010863436.9A CN112100134A (zh) | 2020-08-25 | 2020-08-25 | 导出大文件的方法及装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010863436.9A CN112100134A (zh) | 2020-08-25 | 2020-08-25 | 导出大文件的方法及装置、存储介质及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112100134A true CN112100134A (zh) | 2020-12-18 |
Family
ID=73753434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010863436.9A Pending CN112100134A (zh) | 2020-08-25 | 2020-08-25 | 导出大文件的方法及装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112100134A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925840A (zh) * | 2021-03-09 | 2021-06-08 | 上海华客信息科技有限公司 | 数据导出方法、系统、设备及存储介质 |
CN114124916A (zh) * | 2021-10-27 | 2022-03-01 | 阿波罗智联(北京)科技有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN115022303A (zh) * | 2022-05-17 | 2022-09-06 | 政采云有限公司 | 一种文件下载方法、装置、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030046366A1 (en) * | 2001-02-13 | 2003-03-06 | Shishir Pardikar | System and method for providing transparent access to distributed authoring and versioning files including encrypted files |
CN109639468A (zh) * | 2018-11-29 | 2019-04-16 | 威富通科技有限公司 | 一种资料互导方法、公有云及服务器 |
CN110941658A (zh) * | 2019-11-15 | 2020-03-31 | 泰康保险集团股份有限公司 | 一种数据导出方法、装置、服务器及存储介质 |
CN110955674A (zh) * | 2019-10-21 | 2020-04-03 | 江苏苏宁物流有限公司 | 基于java服务的异步导出方法及组件 |
CN110991154A (zh) * | 2019-12-20 | 2020-04-10 | 深圳前海环融联易信息科技服务有限公司 | 报表生成方法、系统、计算机设备及计算机可读存储介质 |
CN111352951A (zh) * | 2020-02-26 | 2020-06-30 | 苏宁云计算有限公司 | 一种数据导出方法、装置及系统 |
-
2020
- 2020-08-25 CN CN202010863436.9A patent/CN112100134A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030046366A1 (en) * | 2001-02-13 | 2003-03-06 | Shishir Pardikar | System and method for providing transparent access to distributed authoring and versioning files including encrypted files |
CN109639468A (zh) * | 2018-11-29 | 2019-04-16 | 威富通科技有限公司 | 一种资料互导方法、公有云及服务器 |
CN110955674A (zh) * | 2019-10-21 | 2020-04-03 | 江苏苏宁物流有限公司 | 基于java服务的异步导出方法及组件 |
CN110941658A (zh) * | 2019-11-15 | 2020-03-31 | 泰康保险集团股份有限公司 | 一种数据导出方法、装置、服务器及存储介质 |
CN110991154A (zh) * | 2019-12-20 | 2020-04-10 | 深圳前海环融联易信息科技服务有限公司 | 报表生成方法、系统、计算机设备及计算机可读存储介质 |
CN111352951A (zh) * | 2020-02-26 | 2020-06-30 | 苏宁云计算有限公司 | 一种数据导出方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
SOCIALPROMPT: "SpringBoot图文教程10—模板导出|百万数据Excel导出|图片导出「easypoi」", pages 1, Retrieved from the Internet <URL:《https://zhuanlan.zhihu.com/p/111032647》> * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925840A (zh) * | 2021-03-09 | 2021-06-08 | 上海华客信息科技有限公司 | 数据导出方法、系统、设备及存储介质 |
CN114124916A (zh) * | 2021-10-27 | 2022-03-01 | 阿波罗智联(北京)科技有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN115022303A (zh) * | 2022-05-17 | 2022-09-06 | 政采云有限公司 | 一种文件下载方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112100134A (zh) | 导出大文件的方法及装置、存储介质及计算机设备 | |
CN109062925B (zh) | 自动生成insert语句的方法、装置、计算机设备及存储介质 | |
CN111310427A (zh) | 业务数据配置处理方法、装置、计算机设备和存储介质 | |
CN108491367B (zh) | 报告文档生成的方法、装置、计算机设备和存储介质 | |
CN111683066B (zh) | 异构系统集成方法、装置、计算机设备和存储介质 | |
CN112148674A (zh) | 日志数据处理方法、装置、计算机设备和存储介质 | |
CN111552838A (zh) | 数据处理方法及装置、计算机设备、存储介质 | |
CN112631564A (zh) | 基于内容管理系统界面生成方法、装置、设备和存储介质 | |
CN112765103A (zh) | 一种文件解析方法、系统、装置及设备 | |
CN112231379A (zh) | 基于微服务架构的api审计方法、装置、设备及存储介质 | |
CN111818175A (zh) | 企业服务总线配置文件生成方法、装置、设备和存储介质 | |
CN112422450A (zh) | 计算机设备、服务请求的流量控制方法及装置 | |
CN111314478B (zh) | 文件传输方法、装置和计算机设备 | |
CN114218156A (zh) | 数据导出方法、装置、计算机设备和存储介质 | |
CN110597508A (zh) | 界面动态配置方法、装置及存储介质 | |
CN110851173B (zh) | 报表生成方法及装置 | |
CN113296752A (zh) | 生成api文档的方法、系统、设备及存储介质 | |
CN111177600B (zh) | 一种基于移动应用的内置网页加载方法及装置 | |
CN112650804A (zh) | 大数据接入方法、装置、系统及存储介质 | |
CN108874856B (zh) | 一种页面生成系统、方法及服务器 | |
CN116776030A (zh) | 灰度发布方法、装置、计算机设备、存储介质 | |
CN111901383A (zh) | 数据请求处理方法、装置、计算机设备和存储介质 | |
CN110889054A (zh) | 一种前后端分离Web系统的在线预览的方法及装置 | |
CN106487855B (zh) | 文件上传方法、访问方法、装置及设备 | |
CN113535160A (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 |