CN109889568B - 一种数据导出方法、服务器及系统 - Google Patents
一种数据导出方法、服务器及系统 Download PDFInfo
- Publication number
- CN109889568B CN109889568B CN201811643274.7A CN201811643274A CN109889568B CN 109889568 B CN109889568 B CN 109889568B CN 201811643274 A CN201811643274 A CN 201811643274A CN 109889568 B CN109889568 B CN 109889568B
- Authority
- CN
- China
- Prior art keywords
- target
- data
- target data
- cache region
- data block
- 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.)
- Active
Links
Images
Abstract
本发明提供了一种数据导出方法、服务器、客户端及系统,涉及计算机网络技术领域。所述方法包括:接收客户端发送的数据导出请求;响应数据导出请求,在目标缓存区中存在目标数据块的情况下,将目标缓存区中目标数据块发送至客户端;在目标缓存区中不存在目标数据块的情况下,将预设文件系统中数据导出请求对应的目标数据块发送至所述客户端;其中,所述数据导出请求所请求的目标数据由若干个目标数据块构成。可以优先将目标缓存区中的目标数据块发送至客户端,在将其他位置(包括文件系统)的目标数据块发送至客户端时,规避了将目标数据块装载入缓存区的时间延迟,有助于提高数据导出速度。
Description
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种数据导出方法、服务器、客户端及系统。
背景技术
随着计算机网络的迅速发展,用户可以通过网络访问远端服务器的数据,并将数据以文件形式导出。
现有技术中,为了解决数据导出过程中断降低稳定性的问题,数据导出引入中间服务器,主要步骤包括:首先,将数据从目标服务器中导出至中间服务器;然后,在数据完全导出至中间服务器之后生成完整文件;最后,客户端再从中间服务器中下载该完整文件。
上述过程中,数据导出过程中存在两个时间延迟,目标服务器至中间服服务器之间的时间延迟、中间服务器至客户端的时间延迟,两次串行的时间延迟导致数据导出时间延迟较大。
发明内容
本发明实施例提供一种数据导出方法、服务器、客户端及系统,以解决现有的数据导出时间延迟较大的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种数据导出方法,应用于数据导出服务器,所述数据导出服务器与客户端通信连接,包括:
接收所述客户端发送的数据导出请求;
响应所述数据导出请求,确定目标缓存区中是否存在所述数据导出请求对应的目标数据块;
在所述目标缓存区中存在所述目标数据块的情况下,将所述目标缓存区中所述目标数据块发送至所述客户端;
在所述目标缓存区中不存在所述目标数据块的情况下,将预设文件系统中所述数据导出请求对应的目标数据块发送至所述客户端;
其中,所述数据导出请求所请求的目标数据由若干个目标数据块构成。
可选地,所述将预设文件系统中所述数据导出请求对应的目标数据块发送至所述客户端的步骤,包括:
从所述预设文件系统中获取所述目标数据导出请求对应的目标数据块;
在获取到所述目标数据块的情况下,将获取的目标数据块写入所述目标缓存区;
将所述目标缓存区中的目标数据块发送至所述客户端。
可选地,所述方法还包括:
在未获取到所述目标数据块的情况下,针对所述数据导出请求生成一个或多个预设大小的目标数据块;
在每个目标数据块生成之后,将生成的目标数据块实时写入所述目标缓存区和文件系统;
将所述目标缓存区中的目标数据块发送至所述客户端。
可选地,所述将生成的目标数据块实时写入所述目标缓存区和文件系统的步骤,包括:
将生成的目标数据块实时写入所述目标缓存区;
同时,将写入所述目标缓存区的数据块写入所述文件系统,并记录已写入所述文件系统的数据块标识。
第二方面,本发明实施例另外提供了一种数据导出方法,应用于客户端,所述客户端包括浏览器缓存区,所述客户端与数据导出服务器通信连接,包括:
在接收到用户下载指令的情况下,向所述数据导出服务器发送数据导出请求;
将接收的与所述数据导出请求对应的目标数据块保存至所述浏览器缓存区,所述目标数据块从所述数据导出服务器的目标缓存区或预设文件系统中获取;
确定同一数据导出请求对应的目标数据块是否下载完成;
在同一数据导出请求对应的目标数据块下载完成的情况下,对所述浏览器缓存区中同一数据导出请求对应的目标数据块进行合并得到目标数据,并将所述目标数据保存为导出文件。
可选地,所述确定同一数据导出请求对应的目标数据块是否下载完成的步骤,包括:
在当前下载完成的目标数据块的标识为同一数据导出请求预设的最大数据块标识的情况下,确定所述同一数据导出请求对应的目标数据块下载完成;或,
在同一数据导出请求对应的目标数据块的总数目等于所述数据导出请求的目标数据块数的情况下,确定所述同一数据导出请求对应的目标数据块下载完成;或,
在同一数据导出请求对应的目标数据块的数据量之和等于所述数据导出请求的目标数据量的情况下,确定所述同一数据导出请求对应的目标数据块下载完成。
可选地,所述方法还包括:
在同一数据导出请求对应的目标数据块下载未完成的情况下,确定所述数据导出请求是否超时;
在所述数据导出请求超时的情况下,重新向数据导出服务器发送数据导出请求,所述数据导出请求包括起始数据块和/或结束数据块的标识。
第三方面,本发明实施例另外提供了一种数据导出服务器,所述数据导出服务器与客户端通信连接,包括:
数据导出请求接收模块,用于接收所述客户端发送的数据导出请求;
缓存数据确定模块,用于响应所述数据导出请求,确定目标缓存区中是否存在所述数据导出请求对应的目标数据块;
缓存数据发送模块,用于在所述目标缓存区中存在所述目标数据块的情况下,将所述目标缓存区中所述目标数据块发送至所述客户端;
文件系统数据发送模块,用于在所述目标缓存区中不存在所述目标数据块的情况下,将预设文件系统中所述数据导出请求对应的目标数据块发送至所述客户端;
其中,所述数据导出请求所请求的目标数据由若干个目标数据块构成。
可选地,所述文件系统数据发送模块,包括:
文件系统数据获取子模块,用于从所述预设文件系统中获取所述目标数据导出请求对应的目标数据块;
缓存写入子模块,用于在获取到所述目标数据块的情况下,将获取的目标数据块写入所述目标缓存区;
文件系统数据发送子模块,用于将所述目标缓存区中的目标数据块发送至所述客户端。
可选地,所述服务器还包括:
目标数据块生成模块,用于在未获取到所述目标数据块的情况下,针对所述数据导出请求生成一个或多个预设大小的目标数据块;
生成数据写入模块,用于在每个目标数据块生成之后,将生成的目标数据块实时写入所述目标缓存区和文件系统;
生成数据发送模块,用于将所述目标缓存区中的目标数据块发送至所述客户端。
可选地,所述生成数据写入模块,包括:
第一生成数据写入子模块,用于目标缓存区将生成的目标数据块实时写入所述目标缓存区;
第二生成数据写入子模块,用于同时,将写入所述目标缓存区的数据块写入所述文件系统,并记录已写入所述文件系统的数据块标识。
第四方面,本发明实施例另外提供了一种客户端,所述客户端包括浏览器缓存区,所述客户端与数据导出服务器通信连接,包括:
数据导出请求发送模块,用于在接收到用户下载指令的情况下,向所述数据导出服务器发送数据导出请求;
目标数据块接收模块,用于将接收的与所述数据导出请求对应的目标数据块保存至所述浏览器缓存区,所述目标数据块从所述数据导出服务器的目标缓存区或预设文件系统中获取;
下载完成确定模块,用于确定同一数据导出请求对应的目标数据块是否下载完成;
导出文件生成模块,用于在同一数据导出请求对应的目标数据块下载完成的情况下,对所述浏览器缓存区中同一数据导出请求对应的目标数据块进行合并得到目标数据,并将所述目标数据保存为导出文件。
可选地,所述下载完成确定模块,包括:
第一下载完成确定子模块,用于在当前下载完成的目标数据块的标识为同一数据导出请求预设的最大数据块标识的情况下,确定所述同一数据导出请求对应的目标数据块下载完成;或,
第二下载完成确定子模块,用于在同一数据导出请求对应的目标数据块的总数目等于所述数据导出请求的目标数据块数的情况下,确定所述同一数据导出请求对应的目标数据块下载完成;或,
第三下载完成确定子模块,用于在同一数据导出请求对应的目标数据块的数据量之和等于所述数据导出请求的目标数据量的情况下,确定所述同一数据导出请求对应的目标数据块下载完成。
可选地,所述客户端还包括:
请求超时确定模块,用于在同一数据导出请求对应的目标数据块下载未完成的情况下,确定所述数据导出请求是否超时;
重新导出请求发送模块,用于在所述数据导出请求超时的情况下,重新向数据导出服务器发送数据导出请求,所述数据导出请求包括起始数据块和/或结束数据块的标识。
第五方面,本发明实施例另外提供了一种数据导出系统,所述系统包括数据导出服务器和客户端,客户端包括浏览器缓存区,所述数据导出服务器与客户端通信连接,所述数据导出服务器包括:
数据导出请求接收模块,用于接收所述客户端发送的数据导出请求;
缓存数据确定模块,用于响应所述数据导出请求,确定目标缓存区中是否存在所述数据导出请求对应的目标数据块;
缓存数据发送模块,用于在所述目标缓存区中存在所述目标数据块的情况下,将所述目标缓存区中所述目标数据块发送至所述客户端;
文件系统数据发送模块,用于在所述目标缓存区中不存在所述目标数据块的情况下,将预设文件系统中所述数据导出请求对应的目标数据块发送至所述客户端;
其中,所述数据导出请求所请求的目标数据由若干个目标数据块构成;
所述客户端包括:
数据导出请求发送模块,用于在接收到用户下载指令的情况下,向所述数据导出服务器发送数据导出请求;
目标数据块接收模块,用于将接收的与所述数据导出请求对应的目标数据块保存至所述浏览器缓存区,所述目标数据块从所述数据导出服务器的目标缓存区或预设文件系统中获取;
下载完成确定模块,用于确定同一数据导出请求对应的目标数据块是否下载完成;
导出文件生成模块,用于在同一数据导出请求对应的目标数据块下载完成的情况下,对所述浏览器缓存区中同一数据导出请求对应的目标数据块进行合并得到目标数据,并将所述目标数据保存为导出文件。
在本发明实施例中,接收所述客户端发送的数据导出请求;响应所述数据导出请求,确定目标缓存区中是否存在所述数据导出请求对应的目标数据块;在所述目标缓存区中存在所述目标数据块的情况下,将所述目标缓存区中所述目标数据块发送至所述客户端;在所述目标缓存区中不存在所述目标数据块的情况下,将预设文件系统中所述数据导出请求对应的目标数据块发送至所述客户端;其中,所述数据导出请求所请求的目标数据由若干个目标数据块构成。可以优先将目标缓存区中的目标数据块发送至客户端,在将其他位置(包括文件系统)的目标数据块发送至客户端时,规避了将目标数据块装载入缓存区的时间延迟,有助于减小数据导出延迟。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一中的一种数据导出方法的步骤流程图;
图2是本发明实施例二中的一种数据导出方法的步骤流程图;
图3是本发明实施例三中的一种数据导出方法的步骤流程图;
图4是本发明实施例四中的一种数据导出方法的步骤流程图;
图5是本发明实施例中的一种数据导出系统的结构示意图;
图6是本发明实施例中的一种数据导出系统的结构示意图;
图7是本发明实施例中的一种终端设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
详细介绍本发明实施例提供的一种数据导出方法,应用于数据导出服务器,所述数据导出服务器与客户端通信连接。
参照图1,示出了本发明实施例中一种数据导出方法的步骤流程图。
步骤101,接收所述客户端发送的数据导出请求。
其中,数据导出请求为客户端向数据导出服务器发送的数据导出请求,包括但不限于客户端信息、导出条件、校验信息。在实际应用中,用户首先在客户端上的浏览器或其他应用界面上触发导出操作;然后客户端根据触发导出操作时表单中的条件生成数据导出请求;最后将数据导出请求发送至数据导出服务器。
具体地,数据导出服务器和客户端之间通过移动通信网络、有线网络、无线局域网络、蓝牙等进行通信。本发明实施例对其通信方式不加以限制。
步骤102,响应所述数据导出请求,确定目标缓存区中是否存在所述数据导出请求对应的目标数据块。
其中,目标缓存区为数据导出服务器对应的缓存区,可以为数据导出服务器的缓存区,也可以为外设的外设缓存服务器,并与数据导出服务器通信连接。缓存服务器具体可以为Redis、Memcache服务器等。本发明实施例对缓存区的类型不加以限制。
可以理解,缓存区的读取速度较快,缓存区中的数据会根据一定规则进行清除,从而保证缓存区的存取速度。
目标数据块包括数据导出请求所请求导出的数据,可以为一个或多个,目标数据块的大小可以根据实际应用场景设定。例如,可以按照预设字节数目划分数据块,一个数据块对应该预设字节数目;也可以按照分页划分数据块,一个数据块对应一页数据,而页的大小与网络传输、业务需求以及使用环境相关,从而使得存储和传输效率较高。
具体地,可以根据数据导出请求中携带的导出条件与生成目标数据块采用的生成条件进行对比,若两者一致,则存在数据导出请求对应的目标数据块;若两者不一致,则不存在数据导出请求对应的目标数据块。
步骤103,在所述目标缓存区中存在所述目标数据块的情况下,将所述目标缓存区中所述目标数据块发送至所述客户端。
具体地,将目标缓存区中的目标数据块通过移动通信网络、有线网络、无线局域网络、蓝牙等发送至客户端。
可以理解,当数据导出请求包含的目标数据块不止一个时,目标数据块可能部分存在于目标缓存区,另一部分存在于文件系统,此时,将目标缓存区中的部分目标数据块发送至客户端;不存在的目标数据块按照步骤 104从文件系统中获取。
本发明实施例可以优先从目标缓存区中获取目标数据块,在多个客户端请求导出相同数据时,可以有效提高后续客户端的导出速度。本发明实施例对于访问量越高的服务器,速度提高效果越好。
步骤104,在所述目标缓存区中不存在所述目标数据块的情况下,将预设文件系统中所述数据导出请求对应的目标数据块发送至所述客户端;其中,所述数据导出请求所请求的目标数据由若干个目标数据块构成。
其中,预设文件系统用于从目标缓存区中按照一定时间规则获取数据并存储,在目标缓存区中的数据被清除之后,从文件系统中获取目标数据块。可以理解,文件系统可以为服务器的本地文件系统、外设分布式文件系统、FTP(File Transfer Protocol,文件传输协议)文件系统,文件系统将数据存储在存储器上,相对于目标缓存区,存取速度相对较慢,但存储时间较长,稳定。
本发明实施例中,当目标缓存区中不存在目标数据块时,从文件系统中获取目标数据块。
在本发明实施例中,接收所述客户端发送的数据导出请求;响应所述数据导出请求,确定目标缓存区中是否存在所述数据导出请求对应的目标数据块;在所述目标缓存区中存在所述目标数据块的情况下,将所述目标缓存区中所述目标数据块发送至所述客户端;在所述目标缓存区中不存在所述目标数据块的情况下,将预设文件系统中所述数据导出请求对应的目标数据块发送至所述客户端;其中,所述数据导出请求所请求的目标数据由若干个目标数据块构成。可以优先将目标缓存区中的目标数据块发送至客户端,在将其他位置(包括文件系统)的目标数据块发送至客户端时,规避了将目标数据块装载入缓存区的时间延迟,有助于减小数据导出延迟。
实施例二
详细介绍本发明实施例提供的一种数据导出方法,应用于数据导出服务器,所述数据导出服务器与客户端通信连接。
参照图2,示出了本发明实施例中一种数据导出方法的步骤流程图。
步骤201,接收所述客户端发送的数据导出请求。
该步骤可以参照步骤101的详细说明,在此不再赘述。
步骤202,响应所述数据导出请求,确定目标缓存区中是否存在所述数据导出请求对应的目标数据块。
该步骤可以参照步骤102的详细说明,在此不再赘述。
步骤203,在所述目标缓存区中存在所述目标数据块的情况下,将所述目标缓存区中所述目标数据块发送至所述客户端。
该步骤可以参照步骤103的详细说明,在此不再赘述。
步骤204,在所述目标缓存区中不存在所述目标数据块的情况下,从所述预设文件系统中获取所述目标数据导出请求对应的目标数据块。
具体地,根据导出条件或存储位置、文件名称匹配,从文件系统中获取目标数据导出请求对应的目标数据块。
步骤205,在获取到所述目标数据块的情况下,将获取的目标数据块写入所述目标缓存区。
具体地,在写入时可以记录数据块的生成条件、或本次导出条件、或目标缓存区的位置,以使得其他客户端获取同样数据时,可以通过步骤103 从目标缓存区中直接获取目标数据块,有助于提高其他客户端的导出速度。
步骤206,将所述目标缓存区中的目标数据块发送至所述客户端。
在实际应用中,将目标数据块发送至客户端时,均需要从目标缓存区发送。本发明实施例可以将文件系统中的目标数据块通过目标缓存区发送至客户端,同时还可以提高其他客户端导出相同数据的速度。
步骤207,在未获取到所述目标数据块的情况下,针对所述数据导出请求生成一个或多个预设大小的目标数据块。
在本发明实施例中,当目标缓存区、文件系统中均不存在目标数据块时,需要生成目标数据块。
具体地,首先需要根据导出条件从数据源中获取基础数据;然后根据预先设定的运算公式进行运算。在该过程中,可以获取到部分基础数据时即开始运算,生成一个目标数据块,从而多个部分的基础数据对应多个目标数据块。
步骤208,在每个目标数据块生成之后,将生成的目标数据块实时写入所述目标缓存区和文件系统。
在本发明实施例中,每当一个目标数据块生成完成时,即将该目标数据块写入目标缓存区和文件系统。从而避免多个目标数据块的等待时间,可以有效降低导出延迟,提高导出速度。
可选地,在本发明的另一种实施例中,上述步骤208包括子步骤2081 至2082:
子步骤2081,将生成的目标数据块实时写入所述目标缓存区。
在本发明实施例中,可以首先将目标数据块写入目标缓存区,准备发送至客户端,还可以有效提高其他客户端访问该目标数据块的速度。
子步骤2082,同时,将写入所述目标缓存区的数据块写入所述文件系统,并记录已写入所述文件系统的数据块标识。
在本发明实施例中,可以将目标缓存区中的数据块写入文件系统,避免在目标缓存中的目标数据块被清除之后,本次文件导出失败。
此外,在由于网络等异常导致目标数据块的生成过程中断之后,可以从已写入文件系统的数据块标识之后开始生成,避免重新生成导致时间延迟较大。
步骤209,将所述目标缓存区中的目标数据块发送至所述客户端;其中,所述数据导出请求所请求的目标数据由若干个目标数据块构成。
本发明实施例可以在目标数据块生成之后立即通过目标缓存区发送至客户端,有效提高导出速度。
在本发明实施例中,接收所述客户端发送的数据导出请求;响应所述数据导出请求,确定目标缓存区中是否存在所述数据导出请求对应的目标数据块;在所述目标缓存区中存在所述目标数据块的情况下,将所述目标缓存区中所述目标数据块发送至所述客户端;在所述目标缓存区中不存在所述目标数据块的情况下,将预设文件系统中所述数据导出请求对应的目标数据块发送至所述客户端;其中,所述数据导出请求所请求的目标数据由若干个目标数据块构成。可以优先将目标缓存区中的目标数据块发送至客户端,在将其他位置(包括文件系统)的目标数据块发送至客户端时,规避了将目标数据块装载入缓存区的时间延迟,有助于减小数据导出延迟。
实施例三
详细介绍本发明实施例提供的一种数据导出方法,应用于客户端,所述客户端包括浏览器缓存区,所述客户端与数据导出服务器通信连接。
参照图3,示出了本发明实施例中一种数据导出方法的步骤流程图。
步骤301,在接收到用户下载指令的情况下,向所述数据导出服务器发送数据导出请求。
其中,用户下载指令可以为对下载控件的点击操作,用户点击下载时,客户端可以收集当前界面中的导出条件,生成包含导出条件和客户端信息、用户信息的数据导出请求。
当然,数据导出请求还可以包含其他内容,本发明实施例对数据导出请求的具体内容不加以限制。
步骤302,将接收的与所述数据导出请求对应的目标数据块保存至所述浏览器缓存区,所述目标数据块从所述数据导出服务器的目标缓存区或预设文件系统中获取。
其中,浏览器缓存区可以为客户端上指定为浏览器使用的缓存区,在浏览器安装时即分配浏览器缓存区。
可以理解,这里的目标缓存区、文件系统分别为数据导出服务器对应的目标缓存区、文件系统,即实施例一或二中的目标缓存区、文件系统。
需要说明的是,实施例一或二为数据导出服务器侧生成并发送目标数据块的过程,实施例三或4为客户端侧接收目标数据块,并保存为导出文件的过程。
步骤303,确定同一数据导出请求对应的目标数据块是否下载完成。
在实际应用中,首先,客户端向数据导出服务器发出数据导出请求;然后,数据导出服务器将目标数据块发送至客户端;最后,客户端将目标数据块保存至浏览器缓存中。在上述过程中,当数据导出服务器将目标数据块发送至客户端时,同时可以携带数据导出请求对应的所有目标数据块的概览信息,从而客户端可以根据该整体信息确定数据导出请求的所有目标数据块是否下载完成。
其中,概览信息可以包括但不限于:目标数据块的数目、最后一个标识、总字节数目。
步骤304,在同一数据导出请求对应的目标数据块下载完成的情况下,对所述浏览器缓存区中同一数据导出请求对应的目标数据块进行合并得到目标数据,并将所述目标数据保存为导出文件。
可以理解,在目标数据块为多个时,需要将多个目标数据块合并为一个目标数据。
具体地,可以根据目标数据块的标识按照顺序合并。
其中,导出文件可以包括但不限于:PDF文件、Word文件、Excel文件。
可以理解,导出文件的形式可以根据实际应用场景设定,也可以在触发数据导出操作时供用户选择。
在本发明实施例中,在接收到用户下载指令的情况下,向所述数据导出服务器发送数据导出请求;将接收的与所述数据导出请求对应的目标数据块保存至所述浏览器缓存区,所述目标数据块从所述数据导出服务器的目标缓存区或预设文件系统中获取;确定同一数据导出请求对应的目标数据块是否下载完成;在同一数据导出请求对应的目标数据块下载完成的情况下,对所述浏览器缓存区中同一数据导出请求对应的目标数据块进行合并得到目标数据,并将所述目标数据保存为导出文件。将数据导出服务器优先发送的目标缓存区中的目标数据块保存为导出文件,规避了将目标数据块装载入缓存区的时间延迟,有助于减小数据导出延迟。
实施例四
详细介绍本发明实施例提供的一种数据导出方法,应用于客户端,所述客户端包括浏览器缓存区,所述客户端与数据导出服务器通信连接。
参照图4,示出了本发明实施例中一种数据导出方法的步骤流程图。
步骤401,在接收到用户下载指令的情况下,向所述数据导出服务器发送数据导出请求。
该步骤可以参照步骤301的详细说明,在此不再赘述。
步骤402,将接收的与所述数据导出请求对应的目标数据块保存至所述浏览器缓存区,所述目标数据块从所述数据导出服务器的目标缓存区或预设文件系统中获取。
该步骤可以参照步骤302的详细说明,在此不再赘述。
步骤403,在当前下载完成的目标数据块的标识为同一数据导出请求预设的最大数据块标识的情况下,确定所述同一数据导出请求对应的目标数据块下载完成。
在本发明实施例中,在每个目标数据块下载完成之后,可以判断该目标数据块的标识是否为该数据导出请求对应的最大数据块标识,若是,则表明该数据导出请求的所有目标数据块已从数据导出服务器中下载至客户端,即下载完成;若否,则表明该数据导出请求的部分目标数据块未从数据导出服务器中下载至客户端,即下载未完成。
其中,最大数据块标识由数据导出服务器根据导出条件生成目标数据块时编号得到,并下发至客户端。
步骤404,在同一数据导出请求对应的目标数据块的总数目等于所述数据导出请求的目标数据块数的情况下,确定所述同一数据导出请求对应的目标数据块下载完成。
在本发明实施例中,在每个目标数据块下载完成之后,可以统计浏览器缓存中针对该数据导出请求的目标数据块的总数目,确定该总数目是否与目标数据块数一致,若一致,则表明该数据导出请求的所有目标数据块已从数据导出服务器中下载至客户端;若不一致,表明该数据导出请求的部分目标数据块未从数据导出服务器中下载至客户端,即下载未完成。
其中,目标数据块数由数据导出服务器根据导出条件计算得到,并下发至客户端。
步骤405,在同一数据导出请求对应的目标数据块的数据量之和等于所述数据导出请求的目标数据量的情况下,确定所述同一数据导出请求对应的目标数据块下载完成。
在本发明实施例中,在每个目标数据块下载完成之后,可以统计浏览器缓存中针对该数据导出请求的目标数据块的数据量之和,确定该数据量之和是否与目标数据量一致,若一致,则表明该数据导出请求的所有目标数据块已从数据导出服务器中下载至客户端;若不一致,表明该数据导出请求的部分目标数据块未从数据导出服务器中下载至客户端,即下载未完成。
其中,目标数据量可以为数据导出请求对应的总字节数目,由数据导出服务器根据导出条件计算得到,并下发至客户端。
本发明实施例可以根据目标数据块的数目、标识、字节数,灵活确定目标数据块是否下载完成。
步骤406,在同一数据导出请求对应的目标数据块下载完成的情况下,对所述浏览器缓存区中同一数据导出请求对应的目标数据块进行合并得到目标数据,并将所述目标数据保存为导出文件。
该步骤可以参照步骤304的详细说明,在此不再赘述。
步骤407,在同一数据导出请求对应的目标数据块下载未完成的情况下,确定所述数据导出请求是否超时。
在实际应用中,目标数据块未完成时存在两种情况,第一种,正在下载其他未下载的目标数据块,第二种,数据导出请求由于超时等原因导致数据导出请求失效。对于第一种,继续等待,在一定时间之后再确定是否下载完成直至下载完成;对于第二种,重新发送数据导出请求,请求剩余目标数据块,请求可以携带剩余目标数据块。
步骤408,在所述数据导出请求超时的情况下,重新向数据导出服务器发送数据导出请求,所述数据导出请求包括起始数据块和/或结束数据块的标识。
其中,起始数据块标识和结束数据块标识用于表示未下载的剩余目标数据块。
在本发明实施例中,在重新发送请求时可以通过起始数据块标识和结束数据块标识准确定位剩余目标数据块,避免重新获取所有数据块,有助于提高导出速度。
在本发明实施例中,在接收到用户下载指令的情况下,向所述数据导出服务器发送数据导出请求;将接收的与所述数据导出请求对应的目标数据块保存至所述浏览器缓存区,所述目标数据块从所述数据导出服务器的目标缓存区或预设文件系统中获取;确定同一数据导出请求对应的目标数据块是否下载完成;在同一数据导出请求对应的目标数据块下载完成的情况下,对所述浏览器缓存区中同一数据导出请求对应的目标数据块进行合并得到目标数据,并将所述目标数据保存为导出文件。可以将数据导出服务器优先发送的目标缓存区中的目标数据块保存为导出文件,规避了将目标数据块装载入缓存区的时间延迟,有助于减小数据导出延迟。
实施例五
详细介绍本发明实施例提供的一种数据导出系统。
参照图5,示出了本发明实施例中一种数据导出系统的结构示意图。
本发明实施例的数据导出系统包括:数据导出服务器501、客户端 502。
下面分别详细介绍各模块的功能以及各模块之间的交互关系。
所述客户端502包括浏览器缓存区5021,所述数据导出服务器501与客户端502通信连接,所述数据导出服务器501包括:
数据导出请求接收模块5011,用于接收所述客户端502发送的数据导出请求。
缓存数据确定模块5012,用于响应所述数据导出请求,确定目标缓存区中是否存在所述数据导出请求对应的目标数据块。
缓存数据发送模块5013,用于在所述目标缓存区中存在所述目标数据块的情况下,将所述目标缓存区中所述目标数据块发送至所述客户端502。
文件系统数据发送模块5014,用于在所述目标缓存区中不存在所述目标数据块的情况下,将预设文件系统中所述数据导出请求对应的目标数据块发送至所述客户端502;其中,所述数据导出请求所请求的目标数据由若干个目标数据块构成。
所述客户端502包括:
数据导出请求发送模块5022,用于在接收到用户下载指令的情况下,向所述数据导出服务器发送数据导出请求。
目标数据块接收模块5023,用于将接收的目标数据块保存至所述浏览器缓存区5021,所述目标数据块从目标缓存区或预设文件系统中获取;
下载完成确定模块5024,用于确定同一数据导出请求对应的目标数据块是否下载完成。
导出文件生成模块5025,用于在同一数据导出请求对应的目标数据块下载完成的情况下,对所述浏览器缓存区中同一数据导出请求对应的目标数据块进行合并得到目标数据,并将所述目标数据保存为导出文件。
在本发明实施例中,数据导出服务器包括:数据导出请求接收模块,用于接收所述客户端发送的数据导出请求;缓存数据确定模块,用于响应所述数据导出请求,确定目标缓存区中是否存在所述数据导出请求对应的目标数据块;缓存数据发送模块,用于在所述目标缓存区中存在所述目标数据块的情况下,将所述目标缓存区中所述目标数据块发送至所述客户端;文件系统数据发送模块,用于在所述目标缓存区中不存在所述目标数据块的情况下,将预设文件系统中所述数据导出请求对应的目标数据块发送至所述客户端;其中,所述数据导出请求所请求的目标数据由若干个目标数据块构成;所述客户端包括:数据导出请求发送模块,用于在接收到用户下载指令的情况下,向所述数据导出服务器发送数据导出请求;目标数据块接收模块,用于将接收的与所述数据导出请求对应的目标数据块保存至所述浏览器缓存区,所述目标数据块从所述数据导出服务器的目标缓存区或预设文件系统中获取;下载完成确定模块,用于确定同一数据导出请求对应的目标数据块是否下载完成;导出文件生成模块,用于在同一数据导出请求对应的目标数据块下载完成的情况下,对所述浏览器缓存区中同一数据导出请求对应的目标数据块进行合并得到目标数据,并将所述目标数据保存为导出文件。可以优先将目标缓存区中的目标数据块发送至客户端,在将其他位置(包括文件系统)的目标数据块发送至客户端时,规避了将目标数据块装载入缓存区的时间延迟,有助于减小数据导出延迟。
实施例六
详细介绍本发明实施例提供的一种数据导出系统。
参照图6,示出了本发明实施例中一种数据导出系统的结构示意图。
本发明实施例的数据导出系统包括:数据导出服务器601、客户端 602。
下面分别详细介绍各模块的功能以及各模块之间的交互关系。
所述客户端602包括浏览器缓存区6021,所述数据导出服务器601与客户端602通信连接,所述数据导出服务器601包括:
数据导出请求接收模块6011,用于接收所述客户端602发送的数据导出请求。
缓存数据确定模块6012,用于响应所述数据导出请求,确定目标缓存区中是否存在所述数据导出请求对应的目标数据块。
缓存数据发送模块6013,用于在所述目标缓存区中存在所述目标数据块的情况下,将所述目标缓存区中所述目标数据块发送至所述客户端602。
文件系统数据发送模块6014,用于在所述目标缓存区中不存在所述目标数据块的情况下,将预设文件系统中所述数据导出请求对应的目标数据块发送至所述客户端602;其中,所述数据导出请求所请求的目标数据由若干个目标数据块构成;可选地,在本发明实施例中,上述文件系统数据发送模块6014,包括:
文件系统数据获取子模块60141,用于从所述预设文件系统中获取所述目标数据导出请求对应的目标数据块。
缓存写入子模块60142,用于在获取到所述目标数据块的情况下,将获取的目标数据块写入所述目标缓存区。
文件系统数据发送子模块60143,用于将所述目标缓存区中的目标数据块发送至所述客户端602。
目标数据块生成模块6015,用于在未获取到所述目标数据块的情况下,针对所述数据导出请求生成一个或多个预设大小的目标数据块。
生成数据写入模块6016,用于在每个目标数据块生成之后,将生成的目标数据块实时写入所述目标缓存区和文件系统。
生成数据发送模块6017,用于将所述目标缓存区中的目标数据块发送至所述客户端。
所述客户端602包括:
数据导出请求发送模块6022,用于在接收到用户下载指令的情况下,向所述数据导出服务器发送数据导出请求。
目标数据块接收模块6023,用于将接收的目标数据块保存至所述浏览器缓存区6021,所述目标数据块从目标缓存区或预设文件系统中获取;
下载完成确定模块6024,用于确定同一数据导出请求对应的目标数据块是否下载完成;可选地,在本发明的另一种实施例中,所述下载完成确定模块6024,包括:
第一下载完成确定子模块60241,用于在当前下载完成的目标数据块的标识为同一数据导出请求预设的最大数据块标识的情况下,确定所述同一数据导出请求对应的目标数据块下载完成;或,
第二下载完成确定子模块60242,用于在同一数据导出请求对应的目标数据块的总数目等于所述数据导出请求的目标数据块数的情况下,确定所述同一数据导出请求对应的目标数据块下载完成;或,
第三下载完成确定子模块60243,用于在同一数据导出请求对应的目标数据块的数据量之和等于所述数据导出请求的目标数据量的情况下,确定所述同一数据导出请求对应的目标数据块下载完成。
导出文件生成模块6025,用于在同一数据导出请求对应的目标数据块下载完成的情况下,对所述浏览器缓存区中同一数据导出请求对应的目标数据块进行合并得到目标数据,并将所述目标数据保存为导出文件。
请求超时确定模块6026,用于在同一数据导出请求对应的目标数据块下载未完成的情况下,确定所述数据导出请求是否超时。
重新导出请求发送模块6027,用于在所述数据导出请求超时的情况下,重新向数据导出服务器发送数据导出请求,所述数据导出请求包括起始数据块和/或结束数据块的标识。
可选地,在本发明的另一种实施例中,所述生成数据写入模块6016,包括:
第一生成数据写入子模块,用于目标缓存区将生成的目标数据块实时写入所述目标缓存区;
第二生成数据写入子模块,用于同时,将写入所述目标缓存区的数据块写入所述文件系统,并记录已写入所述文件系统的数据块标识。
在本发明实施例中,数据导出服务器包括:数据导出请求接收模块,用于接收所述客户端发送的数据导出请求;缓存数据确定模块,用于响应所述数据导出请求,确定目标缓存区中是否存在所述数据导出请求对应的目标数据块;缓存数据发送模块,用于在所述目标缓存区中存在所述目标数据块的情况下,将所述目标缓存区中所述目标数据块发送至所述客户端;文件系统数据发送模块,用于在所述目标缓存区中不存在所述目标数据块的情况下,将预设文件系统中所述数据导出请求对应的目标数据块发送至所述客户端;其中,所述数据导出请求所请求的目标数据由若干个目标数据块构成,所述客户端包括:数据导出请求发送模块,用于在接收到用户下载指令的情况下,向所述数据导出服务器发送数据导出请求;目标数据块接收模块,用于将接收的与所述数据导出请求对应的目标数据块保存至所述浏览器缓存区,所述目标数据块从所述数据导出服务器的目标缓存区或预设文件系统中获取;下载完成确定模块,用于确定同一数据导出请求对应的目标数据块是否下载完成;导出文件生成模块,用于在同一数据导出请求对应的目标数据块下载完成的情况下,对所述浏览器缓存区中同一数据导出请求对应的目标数据块进行合并得到目标数据,并将所述目标数据保存为导出文件。可以优先将目标缓存区中的目标数据块发送至客户端,在将其他位置(包括文件系统)的目标数据块发送至客户端时,规避了将目标数据块装载入缓存区的时间延迟,有助于减小数据导出延迟。
实施例七
图7为实现本发明各个实施例的一种终端设备的硬件结构示意图。
该终端设备700包括但不限于:射频单元701、网络模块702、音频输出单元703、输入单元704、传感器705、显示单元706、用户输入单元 707、接口单元708、存储器709、处理器710、以及电源711等部件。本领域技术人员可以理解,图7中示出的终端设备结构并不构成对终端设备的限定,终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,终端设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
应理解的是,本发明实施例中,射频单元701可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器710处理;另外,将上行的数据发送给基站。通常,射频单元701包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元701还可以通过无线通信系统与网络和其他设备通信。
终端设备通过网络模块702为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元703可以将射频单元701或网络模块702接收的或者在存储器709中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元703还可以提供与终端设备700执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元703包括扬声器、蜂鸣器以及受话器等。
输入单元704用于接收音频或视频信号。输入单元704可以包括图形处理器(Graphics Processing Unit,GPU)7041和麦克风7042,图形处理器7041 对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元 706上。经图形处理器7041处理后的图像帧可以存储在存储器709(或其它存储介质)中或者经由射频单元701或网络模块702进行发送。麦克风7042 可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元701发送到移动通信基站的格式输出。
终端设备700还包括至少一种传感器705,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板7061的亮度,接近传感器可在终端设备700移动到耳边时,关闭显示面板7061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器705还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元706用于显示由用户输入的信息或提供给用户的信息。显示单元706可包括显示面板7061,可以采用液晶显示器(Liquid Crystal Display, LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板7061。
用户输入单元707可用于接收输入的数字或字符信息,以及产生与终端设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元 707包括触控面板7071以及其他输入设备7072。触控面板7071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板7071上或在触控面板7071附近的操作)。触控面板7071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器710,接收处理器710发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板7071。除了触控面板7071,用户输入单元707还可以包括其他输入设备7072。具体地,其他输入设备7072可以包括但不限于物理键盘、功能键 (比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板7071可覆盖在显示面板7061上,当触控面板7071 检测到在其上或附近的触摸操作后,传送给处理器710以确定触摸事件的类型,随后处理器710根据触摸事件的类型在显示面板7061上提供相应的视觉输出。虽然在图7中,触控面板7071与显示面板7061是作为两个独立的部件来实现终端设备的输入和输出功能,但是在某些实施例中,可以将触控面板7071与显示面板7061集成而实现终端设备的输入和输出功能,具体此处不做限定。
接口单元708为外部装置与终端设备700连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元708可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到终端设备700内的一个或多个元件或者可以用于在终端设备700和外部装置之间传输数据。
存储器709可用于存储软件程序以及各种数据。存储器709可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器709可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器710是终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器709内的软件程序和/或模块,以及调用存储在存储器709内的数据,执行终端设备的各种功能和处理数据,从而对终端设备进行整体监控。处理器710可包括一个或多个处理单元;优选的,处理器710可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器710中。
终端设备700还可以包括给各个部件供电的电源711(比如电池),优选的,电源711可以通过电源管理系统与处理器710逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,终端设备700包括一些未示出的功能模块,在此不再赘述。
优选的,本发明实施例还提供了一种终端设备,包括:处理器710,存储器709,存储在存储器709上并可在处理器710上运行的计算机程序,该计算机程序被处理器710执行时实现上述数据导出方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述数据导出方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (5)
1.一种数据导出方法,应用于数据导出服务器,所述数据导出服务器与客户端通信连接,其特征在于,包括:
接收所述客户端发送的数据导出请求;
响应所述数据导出请求,确定目标缓存区中是否存在所述数据导出请求对应的目标数据块;
在数据导出请求对应的目标数据块部分存在于目标缓存区,另一部分存在于预设文件系统的情况下,先将目标缓存区中的部分目标数据块发送至客户端,将存在于预设文件系统的部分目标数据块写入所述目标缓存区,并通过所述目标缓存区发送至所述客户端;
在所述目标缓存区中不存在所述目标数据块的情况下,将预设文件系统中所述数据导出请求对应的目标数据块写入所述目标缓存区,并通过所述目标缓存区发送至所述客户端;
其中,其他客户端导出相同数据时,从所述目标缓存区中直接获取所述目标数据块;所述目标缓存区按预设规则清除所存储的数据块;所述预设文件系统用于按预设时间规则从目标缓存区中获取数据块,并存储至所述预设文件系统;所述数据导出请求所请求的目标数据由若干个目标数据块构成;所述目标缓存区用于在数据导出请求对应的目标数据块不存在于所述目标缓存区和所述预设文件系统时,存储由数据源的基础数据通过运算获得的目标数据块;
在目标缓存区、预设文件系统中均不存在目标数据块的情况下,针对所述数据导出请求,由数据源的基础数据通过运算生成一个或多个预设大小的目标数据块;
在每个目标数据块生成之后,将生成的目标数据块实时写入所述目标缓存区和预设文件系统;
将所述目标缓存区中的目标数据块发送至所述客户端;其中,将目标数据块发送至客户端时,均需要从目标缓存区发送。
2.根据权利要求1所述的方法,其特征在于,所述将生成的目标数据块实时写入所述目标缓存区和预设文件系统的步骤,包括:
将生成的目标数据块实时写入所述目标缓存区;
同时,将写入所述目标缓存区的数据块写入所述预设文件系统,并记录已写入所述预设文件系统的数据块标识。
3.一种数据导出服务器,所述数据导出服务器与客户端通信连接,其特征在于,包括:
数据导出请求接收模块,用于接收所述客户端发送的数据导出请求;
缓存数据确定模块,用于响应所述数据导出请求,确定目标缓存区中是否存在所述数据导出请求对应的目标数据块;
缓存数据发送模块,用于在数据导出请求对应的目标数据块部分存在于目标缓存区,另一部分存在于预设文件系统的情况下,先将目标缓存区中的部分目标数据块发送至客户端,将存在于预设文件系统的部分目标数据块写入所述目标缓存区,并通过所述目标缓存区发送至所述客户端;
文件系统数据发送模块,用于在所述目标缓存区中不存在所述目标数据块的情况下,将预设文件系统中所述数据导出请求对应的目标数据块写入所述目标缓存区,并通过所述目标缓存区发送至所述客户端;
其中,其他客户端导出相同数据时,从所述目标缓存区中直接获取所述目标数据块;所述目标缓存区用于按预设规则清除所存储的数据块;所述预设文件系统用于按预设时间规则从目标缓存区中获取数据块,并存储至所述预设文件系统;所述数据导出请求所请求的目标数据由若干个目标数据块构成;所述目标缓存区用于在数据导出请求对应的目标数据块不存在于所述目标缓存区和所述预设文件系统时,存储由数据源的基础数据通过运算获得的目标数据块;
目标数据块生成模块,用于在目标缓存区、预设文件系统中均不存在目标数据块的情况下,针对所述数据导出请求,由数据源的基础数据通过运算生成一个或多个预设大小的目标数据块;
生成数据写入模块,用于在每个目标数据块生成之后,将生成的目标数据块实时写入所述目标缓存区和预设文件系统;
生成数据发送模块,用于将所述目标缓存区中的目标数据块发送至所述客户端;其中,将目标数据块发送至客户端时,均需要从目标缓存区发送。
4.根据权利要求3所述的服务器,其特征在于,所述生成数据写入模块,包括:
第一生成数据写入子模块,用于目标缓存区将生成的目标数据块实时写入所述目标缓存区;
第二生成数据写入子模块,用于同时将写入所述目标缓存区的数据块写入所述预设文件系统,并记录已写入所述预设文件系统的数据块标识。
5.一种数据导出系统,所述系统包括数据导出服务器和客户端,客户端包括浏览器缓存区,所述数据导出服务器与客户端通信连接,所述数据导出服务器包括:
数据导出请求接收模块,用于接收所述客户端发送的数据导出请求;
缓存数据确定模块,用于响应所述数据导出请求,确定目标缓存区中是否存在所述数据导出请求对应的目标数据块;
缓存数据发送模块,用于在数据导出请求对应的目标数据块部分存在于目标缓存区,另一部分存在于预设文件系统的情况下,先将目标缓存区中的部分目标数据块发送至客户端,将存在于预设文件系统的部分目标数据块写入所述目标缓存区,并通过所述目标缓存区发送至所述客户端;
文件系统数据发送模块,用于在所述目标缓存区中不存在所述目标数据块的情况下,将预设文件系统中所述数据导出请求对应的目标数据块写入所述目标缓存区,并通过所述目标缓存区发送至所述客户端;
其中,其他客户端导出相同数据时,从所述目标缓存区中直接获取所述目标数据块;所述目标缓存区用于按预设规则清除所存储的数据块;所述预设文件系统用于按预设时间规则从目标缓存区中获取数据块,并存储至所述预设文件系统;所述数据导出请求所请求的目标数据由若干个目标数据块构成;所述目标缓存区用于在数据导出请求对应的目标数据块不存在于所述目标缓存区和所述预设文件系统时,存储由数据源的基础数据通过运算获得的目标数据块;
目标数据块生成模块,用于在目标缓存区、预设文件系统中均不存在目标数据块的情况下,针对所述数据导出请求,由数据源的基础数据通过运算生成一个或多个预设大小的目标数据块;
生成数据写入模块,用于在每个目标数据块生成之后,将生成的目标数据块实时写入所述目标缓存区和预设文件系统;
生成数据发送模块,用于将所述目标缓存区中的目标数据块发送至所述客户端;其中,将目标数据块发送至客户端时,均需要从目标缓存区发送;
所述客户端包括:
数据导出请求发送模块,用于在接收到用户下载指令的情况下,向所述数据导出服务器发送数据导出请求;
目标数据块接收模块,用于将接收的与所述数据导出请求对应的目标数据块保存至所述浏览器缓存区,所述目标数据块从所述数据导出服务器的目标缓存区中获取;
下载完成确定模块,用于确定同一数据导出请求对应的目标数据块是否下载完成;
导出文件生成模块,用于在同一数据导出请求对应的目标数据块下载完成的情况下,对所述浏览器缓存区中同一数据导出请求对应的目标数据块进行合并得到目标数据,并将所述目标数据保存为导出文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811643274.7A CN109889568B (zh) | 2018-12-29 | 2018-12-29 | 一种数据导出方法、服务器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811643274.7A CN109889568B (zh) | 2018-12-29 | 2018-12-29 | 一种数据导出方法、服务器及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109889568A CN109889568A (zh) | 2019-06-14 |
CN109889568B true CN109889568B (zh) | 2022-03-29 |
Family
ID=66925494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811643274.7A Active CN109889568B (zh) | 2018-12-29 | 2018-12-29 | 一种数据导出方法、服务器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109889568B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110971688B (zh) * | 2019-11-29 | 2023-05-12 | 金蝶软件(中国)有限公司 | 一种数据导出方法及相关设备 |
CN112491963B (zh) * | 2020-11-03 | 2023-11-24 | 泰康保险集团股份有限公司 | 数据传输方法、装置、设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214192A (zh) * | 2010-04-12 | 2011-10-12 | 腾讯科技(深圳)有限公司 | 一种实现Web页面数据曲线图显示的方法及服务器 |
CN102255866A (zh) * | 2010-05-17 | 2011-11-23 | 腾讯科技(深圳)有限公司 | 一种数据下载方法及装置 |
CN102685232A (zh) * | 2012-05-14 | 2012-09-19 | 安科智慧城市技术(中国)有限公司 | 基于流媒体服务器的多媒体文件获取方法及流媒体服务器 |
CN104166567A (zh) * | 2014-08-12 | 2014-11-26 | 广州金山网络科技有限公司 | 一种下载网络流数据的方法及装置 |
CN104601724A (zh) * | 2015-02-03 | 2015-05-06 | 北京金和软件股份有限公司 | 上传和下载文件的方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2942971B8 (en) * | 2014-05-08 | 2019-07-17 | Icomera AB | Method and system for bandwidth constrained media streaming to a moving vehicle |
-
2018
- 2018-12-29 CN CN201811643274.7A patent/CN109889568B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214192A (zh) * | 2010-04-12 | 2011-10-12 | 腾讯科技(深圳)有限公司 | 一种实现Web页面数据曲线图显示的方法及服务器 |
CN102255866A (zh) * | 2010-05-17 | 2011-11-23 | 腾讯科技(深圳)有限公司 | 一种数据下载方法及装置 |
CN102685232A (zh) * | 2012-05-14 | 2012-09-19 | 安科智慧城市技术(中国)有限公司 | 基于流媒体服务器的多媒体文件获取方法及流媒体服务器 |
CN104166567A (zh) * | 2014-08-12 | 2014-11-26 | 广州金山网络科技有限公司 | 一种下载网络流数据的方法及装置 |
CN104601724A (zh) * | 2015-02-03 | 2015-05-06 | 北京金和软件股份有限公司 | 上传和下载文件的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109889568A (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109885257B (zh) | 一种磁盘文件读写方法及装置 | |
CN109768926B (zh) | 一种数据处理方法、终端设备及计算机可读存储介质 | |
CN109857297B (zh) | 信息处理方法及终端设备 | |
CN109995862B (zh) | 一种资源调度方法及终端 | |
CN109343788B (zh) | 一种移动终端的操作控制方法及移动终端 | |
CN110780940A (zh) | 应用程序加载方法、电子设备和存储介质 | |
CN111427648A (zh) | 页面资源更新方法、装置、电子设备、服务器及存储介质 | |
CN111049980A (zh) | 一种应用分享方法、电子设备及计算机可读存储介质 | |
CN108984066B (zh) | 一种应用程序图标显示方法及移动终端 | |
CN111163449B (zh) | 一种应用分享方法、第一电子设备及计算机可读存储介质 | |
CN108196781B (zh) | 界面的显示方法和移动终端 | |
CN111399819B (zh) | 数据生成方法、装置、电子设备及存储介质 | |
CN109889568B (zh) | 一种数据导出方法、服务器及系统 | |
CN111131607A (zh) | 一种信息共享方法、电子设备及计算机可读存储介质 | |
CN111061404A (zh) | 一种控制方法及第一电子设备 | |
CN108536513B (zh) | 一种图片显示方向调整方法及移动终端 | |
CN112612552B (zh) | 应用程序资源加载方法、装置、电子设备及可读存储介质 | |
CN111163227B (zh) | 一种分享方法及电子设备 | |
CN111200648B (zh) | 一种业务调用方法、装置、终端设备及存储介质 | |
CN110796438B (zh) | 消息发送方法及移动终端 | |
CN108228357B (zh) | 一种内存清理方法及移动终端 | |
CN108429805B (zh) | 一种文件下载处理方法、发送终端及接收终端 | |
CN110928616A (zh) | 快捷图标管理方法及电子设备 | |
CN107623788B (zh) | 应用启动速度的提高方法、装置及计算机可读存储介质 | |
CN111625170B (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 |