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

一种数据处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 10:48:02


一种数据处理方法、装置、设备及存储介质

技术领域

本发明实施例涉及数据管理技术领域,尤其涉及一种数据处理方法、装置、设备及存储介质。

背景技术

在企业级浏览器/服务器(Browser/Server,B/S)应用中,为了方便跨部门协作及数据分析,存在业务数据导出为Excel文件的刚需。现有技术中在进行数据导出时,一般的做法是,应用运营人员通过点击浏览器页面按钮,发起数据导出请求,然后在页面等待服务器在内存中生成文件,直到服务器响应并完成当次下载。用户必须在页面同步等待服务器完成Excel文件的生成,可能出现同步阻塞时间过长,请求超时,浏览器页面假死而导出失败的问题。

发明内容

本发明实施例提供一种数据处理方法、装置、设备及存储介质,能够避免任务未完成终端陷入页面假死状态。

第一方面,本发明实施例提供了一种数据处理方法,包括:

利用第一线程接收终端发送的数据导出请求,并根据所述数据导出请求创建目标任务以及第二线程;

利用所述第二线程执行所述目标任务,在所述目标任务的执行期间,利用所述第一线程等待所述数据导出请求并读取所述目标任务的执行状态;

在预设响应时间内向所述终端反馈所述目标任务的执行状态。

进一步地,所述利用第二线程执行所述目标任务,包括:

利用所述第二线程采用分页查询的方式执行所述目标任务,以生成目标文件。

进一步地,在生成所述目标文件之后,还包括:

确定所述目标文件的目标存储位置;

在所述目标存储位置存储所述目标文件。

进一步地,所述确定所述目标文件的目标存储位置,包括:

确定内存的剩余存储空间是否满足预设条件;

在所述内存的剩余存储空间满足所述预设条件时,将所述内存确定为所述目标存储位置,在所述内存的剩余存储空间不满足所述预设条件时,将磁盘确定为所述目标存储位置。

进一步地,在所述目标存储位置存储所述目标文件之后,还包括:

确定所述目标文件的存储时间是否超时;

在所述目标文件的存储时间超时时,删除所述目标存储位置存储的所述目标文件。

进一步地,所述在预设响应时间内向所述终端反馈所述目标任务的执行状态,包括:

当在所述预设响应时间内生成了所述目标文件时,向所述终端反馈所述目标文件的存储路径。

进一步地,所述在预设响应时间内向所述终端反馈所述目标任务的执行状态,包括:

当在所述预设响应时间内没有生成所述目标文件时,向所述终端反馈所述目标文件的生成进度和/或预设生成时间。

在生成了所述目标文件时,向所述终端反馈所述目标文件的存储路径。

第二方面,本发明实施例还提供了一种数据处理装置,包括:

接收模块,用于利用第一线程接收终端发送的数据导出请求,并根据所述数据导出请求创建目标任务以及第二线程;

控制模块,用于利用所述第二线程执行所述目标任务,在所述目标任务的执行期间,利用所述第一线程等待所述数据导出请求并读取所述目标任务的执行状态;

反馈模块,用于在预设响应时间内向所述终端反馈所述目标任务的执行状态。

第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如本发明实施例中任一所述的数据处理方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的数据处理方法的步骤。

本发明实施例通过利用第一线程接收终端发送的数据导出请求,并根据数据导出请求创建目标任务以及第二线程;利用第一线程执行目标任务,在目标任务的执行期间,利用第一线程等待数据导出请求并读取目标任务的执行状态;在预设响应时间内向终端反馈目标任务的执行状态。即本发明实施例中,采用双线程并行处理方式,无论任务执行完成或未完成,在预设响应时间内都会给终端反馈,避免任务未完成终端陷入页面假死状态。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1是本发明实施例一提供的一种数据处理方法的流程图;

图2是本发明实施例二提供的一种数据处理方法的流程图;

图3是本发明实施例三提供的一种数据处理方法的流程图;

图4是本发明实施例四提供的一种数据处理方法的流程图;

图5是本发明实施例五提供的一种数据导出方法的流程图;

图6是本发明实施例六提供的一种数据处理装置的结构示意图;

图7是本发明实施例七提供的一种电子设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

实施例一

图1是本发明实施例一提供的一种数据处理方法的流程图,本实施例可适用于数据导出的情况,该方法可以由本发明实施例中的数据处理装置来执行,该装置可采用软件和/或硬件的方式实现,在一个具体的实施例中,该装置可以集成在服务器中。以下实施例将以该装置集成在服务器中为例进行说明,如图1所示,该方法具体包括如下步骤:

S110、利用第一线程接收终端发送的数据导出请求,并根据数据导出请求创建目标任务以及第二线程。

其中,线程指的是操作系统能够进行运算调度的最小单位。第一线程指的是创建数据导出任务并读取数据导出任务状态的线程,第二线程指的是执行数据导出任务的线程。需要说明的是,本实施例中是基于线程池技术来执行的,第一线程和第二线程是相互独立,并行处理的。

其中,终端可以是计算机等固定终端,也可以是手机、笔记本和平板电脑等移动终端。终端可以向服务器发送数据导出请求,以导出所需数据,比如,当用户在终端浏览需要导出数据时,可以向服务器发送数据导出请求,服务器接收终端发送的数据导出请求。目标任务指的是数据导出的任务。

具体的,用户可以通过触摸点击选择终端上的数据导出按钮来发送数据导出请求。本实施例中以终端是计算机为例进行举例说明,用户可以通过计算机在浏览器页面上选定需要导出的数据,并点击该页面对应的导出按钮,即表示要导出选定的数据。也就是说,用户通过计算机浏览器页面选择要导出的数据,生成数据导出请求发送服务器。利用第一线程,服务器接收计算机发送的数据导出请求,根据数据导出请求,第一线程创建了数据导出任务,同时也创建了第二线程用来执行数据导出任务,此时,目标任务的执行状态为“任务准备就绪”。

S120、利用第二线程执行目标任务,在目标任务的执行期间,利用第一线程等待数据导出请求并读取目标任务的执行状态。

具体的,通过上述步骤S110第一线程创建了目标任务以及第二线程,并提交第二线程到线程池等待线程调度。第一线程读取“任务准备就绪”的目标任务执行状态。当用于执行目标任务的第二线程被线程池调度,开始执行数据导出任务。在数据导出任务的执行期间,第二线程将根据执行情况更改数据导出任务的状态,第一线程等待数据导出请求并根据第二线程执行目标任务的进度情况,读取目标任务的执行状态。例如,数据导出任务完成,则第二线程将执行状态设置为“文件已生成”,第一线程读取当前数据导出任务的执行状态为“文件已生成”。目标任务的执行状态可以是任务准备就绪、文件生成中、文件已生成、任务失败、任务取消中以及任务已取消等。

S130、在预设响应时间内向终端反馈目标任务的执行状态。

其中,预设响应时间指的是预先设置的服务器响应终端发送的数据导出请求的时间。

具体的,在本实施例中,在Maven管理的Java项目中,引入导出组件后,在项目配置预设响应时间可以将预设响应时间设置为5s。本实施例中仅对预设响应时间进行举例说明,而非限定。在接收到数据导出请求时开始计时,第一线程访问第二线程的数据导出任务的执行情况,读取目标任务的执行状态并在预设响应时间内给终端反馈。也就是说,在数据导出任务的执行期间,第一线程等待数据导出请求并读取第二线程执行数据导出任务的执行状态。例如,若在接收到数据导出请求5s内(比如第3秒),第二线程的数据导出任务完成,生成了导出数据文件、导出数据文件的存储路径并将目标任务的执行状态设置为“文件已生成”,则在第3秒,第一线程可以读取到第二线程设置的导出数据文件的存储路径以及目标任务的执行状态,并将导出数据文件的存储路径及目标任务的执行状态(文件已生成)反馈给终端。若在接收到数据导出请求5s内,第二线程的数据导出任务未完成,比如,在第4s(可根据响应所需时间自适应取值,比如响应所需时间为1s,则需要在第4s即向终端反馈)时监测到第二线程的数据导出任务还未完成,还没有生成导出数据文件,则第二线程根据导出任务的执行情况,将目标任务的执行状态设置为“文件生成中”,在接收到数据导出请求5s内,第一线程读取目标任务的生成进度和/或预设生成时间并将目标任务的生成进度和/或预设生成时间及目标任务的执行状态(文件生成中)反馈给终端。

可选的,对于目标任务的执行状态为“文件生成中”的目标任务,第二线程继续执行目标任务,在执行的过程中,用户可以通过终端浏览器发出任务取消请求。此时,服务器接收到任务取消请求并建立取消线程用于取消目标任务,第一线程读取取消线程的进度并反馈给终端。

本发明实施例的技术方案,通过利用第一线程接收终端发送的数据导出请求,并根据数据导出请求创建目标任务以及第二线程;利用第二线程执行目标任务,在目标任务的执行期间,利用第一线程等待数据导出请求并读取目标任务的执行状态;在预设响应时间内向终端反馈目标任务的执行状态。即本发明实施例中,采用双线程并行处理方式,无论任务执行完成或未完成,在预设响应时间内都会给终端反馈,避免任务未完成终端陷入页面假死状态,解决了现有技术中等待服务器完成文件的生成,可能出现同步阻塞时间过长,请求超时,浏览器页面假死而导出失败的问题。

实施例二

图2是本发明实施例二提供的一种数据处理方法的流程图,本实施例可适用于数据导出的情况,本实施例以上述实施例为基础进行了优化,未在本实施例中详尽描述的技术细节可参见上述任意实施例。在本实施例中,利用第二线程执行目标任务,包括:利用第二线程采用分页查询的方式执行目标任务,以生成目标文件。在生成目标文件之后,还包括:确定目标文件的目标存储位置;在目标存储位置存储目标文件。

如图2所示,本实施例的数据处理方法具体包括如下步骤:

S210、利用第一线程接收终端发送的数据导出请求,并根据数据导出请求创建目标任务以及第二线程。

S220、利用第二线程采用分页查询的方式执行目标任务,以生成目标文件。

其中,分页查询指不是一次性查询所有的数据,每次只查询一“页”数据的数据查询方式。采用分页查询对数据分批次地进行处理,可以有效避免服务器资源被耗尽,因数据传输量过大而使处理超时等问题,从而会导致查询无法完成。目标文件指的是包含有导出数据的文件。

具体的,通过上述步骤S110服务器创建了目标任务以及第二线程,并提交第二线程到线程池等待线程调度。当第二线程被程调池调度,开始采用分页查询的方式执行数据导出的任务。分页查询的逻辑是多样的,由具体的业务开发者自行实现,这些逻辑都实现了分页查询的抽象接口。也就是说,所有的分页查询逻辑都能够按照页码,每页大小的参数查询。分页查询的返回结果包括每页查询结果的列表,当前页,当前页大小,符合查询的总记录数以及总页数。其中符合查询的总记录数以及总页数结果的返回是可选的。

进一步地,如果分页查询有返回总页数,那么任务生成进度等于已完成的页数除以总页数,在第一页查询时记录开始时间戳,每完成一页就计算当前已完成n页经过的时间,以此计算预设生成时间等于经过的时间除以生成进度。服务器每查询一页,就要开始进行当页的数据写入。服务器循环查询,直到查到空页,此时整体的目标文件已经生成。

需要说明的是,由于本实施例中采用分页查询的方式执行数据导出任务,服务器每查询一页,就将当页的数据写入。因此,当数据导出任务执行完成后,将会得到一个或多个临时文件,在得到多个临时文件时,需要将这些临时文件按照顺序组合以生成整体的目标文件。

S230、确定目标文件的目标存储位置,在目标存储位置存储目标文件。

其中,目标存储位置指的是用于存储所导出的数据文件的位置。

具体的,在利用第二线程采用分页查询的方式执行目标任务时,确定目标文件的目标存储位置也在同步进行。可以理解为,服务器每查询一页,就要开始进行当前页的数据写入。在进行当前页的数据写入时,需要确定当前页数据的存储位置,也就是目标存储位置。在本实施例中,目标存储位置默认为内存,当内存的剩余存储空间不足时,将磁盘确定为目标存储位置。

S240、在目标任务的执行期间,利用第一线程等待数据导出请求并读取目标任务的执行状态。

S250、在预设响应时间内向终端反馈目标任务的执行状态。

需要说明的是,本实施例中,服务器预先配置了最大导出任务线程数,以此来合理控制最大导出任务线程数,避免频繁的线程上下文切换。

本发明实施例二提供的技术方案,利用第二线程采用分页查询的方式执行目标任务,以生成目标文件。采用分页查询的方式执行数据导出的任务,能够在导出数据量较大时,降低了数据库查询压力。

实施例三

图3是本发明实施例三提供的一种数据处理方法的流程图,本实施例可适用于数据导出的情况,本实施例以上述实施例为基础进行了优化,未在本实施例中详尽描述的技术细节可参见上述任意实施例。在本实施例中,确定目标文件的目标存储位置,包括:确定内存的剩余存储空间是否满足预设条件;在内存的剩余存储空间满足预设条件时,将内存确定为目标存储位置,在内存的剩余存储空间不满足预设条件时,将磁盘确定为目标存储位置。在目标存储位置存储目标文件之后,还包括:确定目标文件的存储时间是否超时;在目标文件的存储时间超时时,删除目标存储位置存储的目标文件。

如图3所示,本实施例的数据处理方法具体包括如下步骤:

S310、利用第一线程接收终端发送的数据导出请求,并根据数据导出请求创建目标任务以及第二线程。

S320、利用第二线程采用分页查询的方式执行目标任务,以生成目标文件。

S330、确定内存的剩余存储空间是否满足预设条件。

其中,预设条件指的是预先设置的用于判断是否将目标文件存储至内存中的标准。

具体的,在本实施例中,将预设条件设置为内存的剩余存储空间大于25%,本实施例仅对设置预设条件进行举例说明,而非限定。将当前内存的剩余存储空间与预设条件进行对比,以确定内存的剩余存储空间是否满足预设条件。

S340、在内存的剩余存储空间满足所述预设条件时,将内存确定为目标存储位置,在内存的剩余存储空间不满足预设条件时,将磁盘确定为目标存储位置。

具体的,以预设条件是内存的剩余存储空间大于25%为例,进行举例说明。当内存的剩余存储空间大于25%时,将内存确定为目标存储位置。当内存的剩余存储空间小于或等于25%时,将磁盘确定为目标存储位置。也就是说,在采用分页查询的方式执行数据导出的任务时,服务器每查询一页进行当前页的数据写入时,若当前内存的剩余存储空间大于25%,则将当前页的数据写入到内存中去;若当前内存的剩余存储空间小于25%,则将当前页的数据写入到磁盘中去。根据内存的剩余存储空间的大小,选择性地存储导出的数据,能够动态选择最终文件的生成方式,及时释放内存。

S350、在目标存储位置存储目标文件。

S360、确定目标文件的存储时间是否超时。

其中,存储时间指的是包含导出数据的文件在目标存储位置所存储的时间。

具体的,在本实施例中,超时时间默认为7日,本实施例仅对超时时间进行举例说明,而非限定。将包含导出数据的目标文件在目标存储位置所存储的时间与超时时间进行对比,以确定目标文件的存储时间是否超时。

S370、在目标文件的存储时间超时时,删除目标存储位置存储的目标文件。

具体的,以超时时间是7日为例,进行举例说明。当目标文件在目标存储位置存储的时间超过7日时,将目标存储位置存储的目标文件删除。将已完成的导出数据目标文件保存7日时间,7日内可以重复下载,不需要服务器重新查询。

S380、在目标任务的执行期间,利用第一线程等待数据导出请求并读取目标任务的执行状态。

S390、在预设响应时间内向终端反馈目标任务的执行状态。

本发明实施例三提供的技术方案,通过设置预设条件判断内存的剩余存储空间的大小,根据判断结果选择目标文件的目标存储位置时内存还是磁盘。根据内存的剩余存储空间的大小,选择性地存储导出的数据,能够动态选择最终文件的生成方式,及时释放内存。合理地控制了数据导出任务的内存占用问题,解决了如果导出数据量较大,可能会挤占应用的可用内存,抛出内存用完了(Out Of Menmory Error,OOM)的问题。同时将已完成的导出文件保存一段时间,可以重复下载,不需要服务器重新查询,解决了对于某一次的请求,不能重复下载,服务器必须重新开始统计数据生成目标文件的问题。

实施例四

图4是本发明实施例四提供的一种数据处理方法的流程图,本实施例可适用于数据导出的情况,本实施例以上述实施例为基础进行了优化,未在本实施例中详尽描述的技术细节可参见上述任意实施例。在本实施例中,在预设响应时间内向终端反馈目标任务的执行状态,包括:当在预设响应时间内生成了目标文件时,向终端反馈目标文件的存储路径。当在预设响应时间内没有生成目标文件时,向终端反馈目标文件的生成进度和/或预设生成时间。在向终端反馈目标文件的生成进度和/或预设生成时间之后,还包括:在生成了目标文件时,向终端反馈目标文件的存储路径。

如图4所示,本实施例的数据处理方法具体包括如下步骤:

S410、利用第一线程接收终端发送的数据导出请求,并根据数据导出请求创建目标任务以及第二线程。

S420、利用第二线程执行目标任务,在所述目标任务的执行期间,利用第一线程等待数据导出请求并读取目标任务的执行状态。

S430、当在预设响应时间内生成了目标文件时,向终端反馈目标文件的存储路径。

其中,存储路径指的是目标文件的存储位置路径。

具体的,在本实施例中,可以将预设响应时间设置为5s,终端为计算机。在接收到数据导出请求时开始计时,第一线程读取第二线程目标任务的执行状态并在预设响应时间内给终端反馈。若在接收到数据导出请求5s内(比如第3秒),第二线程的数据导出任务完成,生成了导出数据文件、导出数据文件的存储路径并将目标任务的执行状态设置为“文件已生成”,则在第3秒,第一线程可以读取到第二线程设置的导出数据文件的存储路径以及目标任务的执行状态,并将导出数据文件的存储路径及目标任务的执行状态(文件已生成)反馈给终端。若第二线程在执行数据导出任务中因为某些原因失败,比如程序异常,则第二线程会将目标任务的执行状态修改为“任务失败”,第一线程读取目标任务执行状态反馈给终端;若目标文件生成,则第一线程终端反馈目标文件的存储路径时,同时反馈目标任务的执行状态为“文件已生成”。

需要说明的是,本实施例中的存储路径用统一资源定位符(Uniform ResourceLocator,URL)表示。通过本实施例中的数据处理方法,可以获得目标文件的URL,用户可以通过计算机浏览器直接访问URL,触发文件传输,完成目标文件的下载。

S440、当在预设响应时间内没有生成目标文件时,向终端反馈目标文件的生成进度和/或预设生成时间。

其中,目标文件的生成进度和/或预设生成时间可以通过上述实施例中的步骤S220获得。

具体的,目标文件的生成进度等于已完成的页数除以总页数,在第一页查询时记录开始时间戳,每完成一页就计算当前已完成n页经过的时间,以此计算预设生成时间等于经过的时间除以生成进度。

进一步地,可以将预设响应时间设置为5s,终端为计算机。在接收到数据导出请求时开始计时,第一线程读取目标任务的执行状态并在预设响应时间内给终端反馈。若在接收到数据导出请求5s内,第二线程的数据导出任务未完成,比如,在第4s(可根据响应所需时间自适应取值,比如响应所需时间为1s,则需要在第4s即向终端反馈)时监测到第二线程的数据导出任务还未完成,还没有生成导出数据文件,则第二线程获取目标任务的生成进度和/或预设生成时间并将目标任务的执行状态设置为“文件生成中”,第一线程读取目标任务的生成进度和/或预设生成时间以及目标任务的执行状态,在接收到数据导出请求5s内,将目标任务的生成进度和/或预设生成时间及目标任务的执行状态(文件生成中)反馈给终端。

S450、在生成了目标文件时,向终端反馈目标文件的存储路径。

具体的,在步骤S440中,因为在预设响应时间内没有生成目标文件,向终端反馈了目标文件的生成进度和/或预设生成时间,在经过了预设生成时间生成了目标文件时,则服务器将目标文件的存储位置路径URL反馈给终端。

本发明实施例四提供的技术方案,通过设置预设响应时间,在预设响应时间内无论任务执行完成或未完成都会给终端反馈,用户可以在规定的预设响应时间内获取任务状态,如果任务执行较快,可以立刻获得导出数据目标文件;如果耗时较长,可以获得目标文件的生成进度和/或预设生成时间,用户不需要一直在浏览器等待,提高了工作效率。

实施例五

图5是本发明实施例五提供的一种数据导出方法的流程图,本实施例为上述实施例中数据处理方法的一种实例应用,但不限于此。具体的,参考图5,该数据导出方法具体包括如下步骤:

终端的执行步骤:

a1、用户在终端浏览器发起数据导出请求,此时浏览器处于阻塞状态,阻塞的最长时间为设定的预设响应时间(默认5s),在预设响应时间内服务器会给予终端浏览器响应。

a2、终端浏览器获取到状态为“文件已生成”的目标任务的执行状态,并且该执行状态中包含目标文件的存储路径URL,那么浏览器会直接访问URL,触发目标文件传输,完成下载。

a3、终端浏览器获取到状态不是“文件已生成”的目标任务的执行状态,那么此时必定没有URL可以访问,前端会得到任务执行状态反馈,提示用户目标文件的生成进度和/或预设生成时间。经过预设生成时间后通过目标文件的存储路径URL访问文件,或提示任务失败发起重试。

服务器的执行步骤:

b1、利用第一线程服务器接收到终端发送的数据导出请求,创建“任务准备就绪”的目标任务执行状态以及第二线程,并提交目标任务到线程池等待线程调度。

b2、任务线程被服务器第二线程调度,开始采用分页查询的方式执行数据导出的任务。分页查询的逻辑是多样的,由具体的业务开发者自行实现,这些逻辑都实现了分页查询的抽象接口。也就是说,所有的分页查询逻辑都能够按照页码,每页大小的参数查询。分页查询的返回结果包括每页查询结果的列表,当前页,当前页大,符合查询的总记录数(可选),总页数(可选)。

b3、如果分页查询有返回总页数,那么文件生成进度=已完成的页数/总页数,在第一页查询时记录开始时间戳,每完成一页就计算当前已完成n页经过的时间,以此计算预设生成时间=经过的时间/文件生成进度。

b4、每查询一页,就要开始进行当页的数据写入,如果内存的剩余存储空间充足,那么写入到内存,默认内存的剩余存储空间要大于25%,否则将数据写入到磁盘中去。

b5、循环查询,直到查到空页,此时整体的目标文件已经生成,根据约定放到目标存储位置,以便于浏览器能够直接访问,设置目标任务状态为“文件已生成”,记录URL,第二线程结束。

b6、已生成的目标文件在一定时间内可以重复访问URL下载,超过超时时间(默认7日)自动清除,时间由开发者配置。

本发明实施例五提供的数据导出方法,在上述实施例的基础上进行应用举例。以如何在互联网中导出数据为例介绍数据处理方法。该方法基于线程池技术,用户在发起导出请求时,设定一个较短的超时时间,如果数据量少,文件生成很快,那么用户可以立刻获得导出结果;如果经过超时时间还未完成,那么页面会立刻获得响应,得到任务预计完成时间,用户可以先做其他事情,再回到系统进行快速下载,避免浏览器页面假死。

实施例六

图6是本发明实施例六提供的一种数据处理装置的结构示意图。如图6所示,该数据处理装置具体包括:接收模块510、控制模块520和反馈模块530。

其中,接收模块510,用于利用第一线程接收终端发送的数据导出请求,并根据数据导出请求创建目标任务以及第二线程。

控制模块520,用于利用第二线程执行目标任务,在目标任务的执行期间,利用第一线程等待数据导出请求并读取目标任务的执行状态;

反馈模块530,用于在预设响应时间内向终端反馈目标任务的执行状态。

本发明实施例六提供的一种数据处理装置,通过接收模块利用第一线程接收终端发送的数据导出请求,并根据数据导出请求创建目标任务以及第二线程;通过控制模块利用第二线程执行目标任务,在目标任务的执行期间,利用第一线程等待数据导出请求并读取目标任务的执行状态;通过反馈模块在预设响应时间内向终端反馈目标任务的执行状态。即本发明实施例中,采用双线程并行处理方式,无论任务执行完成或未完成,在预设响应时间内都会给终端反馈,避免任务未完成终端陷入页面假死状态,解决了现有技术中等待服务器完成文件的生成,可能出现同步阻塞时间过长,请求超时,浏览器页面假死而导出失败的问题。

进一步地,控制模块520还包括:

生成单元,用于利用第二线程采用分页查询的方式执行目标任务,以生成目标文件。

确定单元,用于确定目标文件的目标存储位置;

存储单元,用于在目标存储位置存储目标文件。

进一步地,确定单元还用于确定内存的剩余存储空间是否满足预设条件;在内存的剩余存储空间满足预设条件时,将内存确定为目标存储位置,在内存的剩余存储空间不满足预设条件时,将磁盘确定为目标存储位置。

进一步地,在目标存储位置存储目标文件之后,控制模块520还包括:

确定超时单元,用于确定所述目标文件的存储时间是否超时;

删除单元,用于在目标文件的存储时间超时时,删除目标存储位置存储的目标文件。

进一步地,反馈模块530还包括:

第一反馈单元,用于当在预设响应时间内生成了目标文件时,向终端反馈目标文件的存储路径。

第二反馈单元,用于当在预设响应时间内没有生成目标文件时,向终端反馈目标文件的生成进度和/或预设生成时间。

进一步地,在向终端反馈目标文件的生成进度和/或预设生成时间之后,反馈模块530还用于在生成了目标文件时,向终端反馈目标文件的存储路径。

本实施例所提供的数据处理装置可执行本发明任意实施例所提供的数据处理方法,具备执行数据处理方法相应的功能模块和有益效果。

实施例七

图7是本发明实施例七提供的一种电子设备的结构示意图。如图7所示,该设备包括处理器610、存储器620、输入装置630输出装置640;设备中处理器610的数量可以是一个或多个,图7中以一个处理器610为例;设备中的处理器610、存储器620、输入装置和630输出装置640可以通过总线或其他方式连接,图7中以通过总线连接为例。

存储器620作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据处理方法对应的程序模块(例如,数据处理装置中的接收模块510、控制模块520和反馈模块530)。处理器610通过运行存储在存储器620中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的数据处理方法。

存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器620可进一步包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置630可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置640可包括显示屏等显示设备。

实施例八

本发明实施例八还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据处理方法,该方法包括:

利用第一线程接收终端发送的数据导出请求,并根据数据导出请求创建目标任务以及第二线程;

利用第二线程执行目标任务,在目标任务的执行期间,利用第一线程等待数据导出请求并读取目标任务的执行状态;

在预设响应时间内向终端反馈目标任务的执行状态。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据处理方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述数据处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

相关技术
  • 一种物联网设备数据处理方法、装置、设备及存储介质
  • 穿戴式设备及其数据处理方法、装置、设备、存储介质
技术分类

06120112685708