一种异步下载方法、装置和存储介质与流程

文档序号:33454153发布日期:2023-03-15 01:46阅读:72来源:国知局
一种异步下载方法、装置和存储介质与流程

1.本发明涉及数据处理技术领域,尤其是涉及一种异步下载方法、装置和存储介质。


背景技术:

2.业务信息量大、逻辑关联复杂时,导致联机查询信息报表时间过长,用户体验差,web服务器无响应或者报错服务无效。
3.公开号为cn114710511a的发明公开了一种数据下载方法、装置、终端、系统及存储介质,该方法包括:获取数据下载任务;向数据服务集群发送数据下载任务,以使得数据服务集群根据数据下载任务从源数据表中获取目标数据并根据目标数据创建目标数据表;从中间存储设备下载目标数据表,目标数据表由数据服务集群发送至中间存储设备。即本发明实施例中,数据服务集群会将创建的目标数据表发送至中间存储设备,从而便于终端随时从中间存储设备下载目标数据表,解决了目标数据表由于处于缓存状态而导致存储时间较短的问题,满足了用户在长时间后再次获取目标数据表或者部分目标数据的需求,为用户提供了更加便捷、经济和高效的数据下载方式。
4.该方案中,将目标数据线下载到中间存储设备内,但仍需要逐个进行下载,数据下载的实时性仍得不到提升。


技术实现要素:

5.本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种避免下载数据堵塞、提升用户体验的异步下载方法、装置和存储介质。
6.本发明的目的可以通过以下技术方案来实现:
7.一种异步下载方法,包括以下步骤:
8.预先构建生产者进程、消费者进程和缓冲区;
9.获取异步下载请求后,根据该异步下载请求通过所述生产者进程进行数据下载,数据下载过程中,首先检查所述缓冲区是否已满,若未满,则将下载的数据传输入缓冲区;若已满,则暂停数据下载并等待;
10.所述消费者进程实时检查所述缓冲区中是否存储有数据,若有,则根据对应的异步下载请求从缓冲区中进行数据获取,否则等待。
11.进一步地,所述方法还包括:在获取异步下载请求后,将获取的异步下载请求存入预先设置的延时队列中,根据预先设置的时间间隔,定时依次执行延时队列中的异步下载请求。
12.进一步地,所述方法还包括:消费者进程从缓冲区中进行数据获取后,生成通知信息传输给所述生产者进程;所述生产者进程根据所述通知信息判断缓冲区是否已满。
13.进一步地,所述生产者进程和消费者进程的数量均为一个或多个。
14.进一步地,所述方法还包括根据异步下载请求创建或销毁所述生产者进程和消费者进程。
15.本发明还提供一种异步下载装置,包括:
16.前端输入模块,被配置为,生成和发送异步下载请求;
17.生产消费模块,被配置为,构建和销毁生产者进程、消费者进程和缓冲区,所述生产者进程根据接收到的异步下载请求进行数据下载,数据下载过程中,首先检查所述缓冲区是否已满,若未满,则将下载的数据传输入缓冲区;若已满,则暂停数据下载并等待;所述消费者进程实时检查所述缓冲区中是否存储有数据,若有,则根据对应的异步下载请求从缓冲区中进行数据获取,否则等待;
18.文件处理模块,被配置为,将消费者进程获取的下载文件放入指定路径中。
19.进一步地,所述装置还包括后台定时监控模块,该后台定时监控模块,被配置为,在获取异步下载请求后,将获取的异步下载请求存入预先设置的延时队列中,根据预先设置的时间间隔,定时依次执行延时队列中的异步下载请求。
20.进一步地,所述消费者进程从缓冲区中进行数据获取后,生成通知信息传输给所述生产者进程;所述生产者进程根据所述通知信息判断缓冲区是否已满。
21.进一步地,所述生产者进程和消费者进程的数量均为一个或多个。
22.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上储存有计算机程序,所述计算机程序被处理器执行如上所述的方法。
23.与现有技术相比,本发明具有以下优点:
24.(1)数据下载过程中,如果不使用异步,那java线程就会被阻塞,导致界面无法响应,用户就会很无助,本发明增加了异步,让复杂的任务在另外的线程中完成,就会有比较好的用户体验。
25.(2)本发明异步下载方案适应范围广泛,不存在软件产品的界限,任何需要分支类公式配置的地方都可以作为组件使用,通用性强。
附图说明
26.图1为本发明实施例中提供的一种异步下载方法的流程示意图。
具体实施方式
27.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
28.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
29.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
30.实施例1
31.如图1所示,本实施例提供一种异步下载方法,包括以下步骤:
32.预先构建生产者进程、消费者进程和缓冲区;
33.获取异步下载请求后,根据该异步下载请求通过生产者进程进行数据下载,数据下载过程中,首先检查缓冲区是否已满,若未满,则将下载的数据传输入缓冲区;若已满,则暂停数据下载并等待;
34.消费者进程实时检查缓冲区中是否存储有数据,若有,则根据对应的异步下载请求从缓冲区中进行数据获取,否则等待。
35.如果不使用异步,那java线程就会被阻塞,导致界面无法响应,用户就会很无助,增加了异步,让复杂的任务在另外的线程中完成,就会有比较好的用户体验。线程的创建,销毁,和线程上下文切换会有额外的开销。
36.生产者进程和消费者进程的数量均为一个或多个。方法根据异步下载请求创建或销毁生产者进程和消费者进程。
37.作为一种优选的实施方式,方法还包括:在获取异步下载请求后,将获取的异步下载请求存入预先设置的延时队列中,根据预先设置的时间间隔,定时依次执行延时队列中的异步下载请求,通过定时任务执行,保证了各个异步下载请求的有序处理,防止堵塞情况的发生。
38.作为一种优选的实施方式,方法还包括:消费者进程从缓冲区中进行数据获取后,生成通知信息传输给生产者进程;生产者进程根据通知信息判断缓冲区是否已满。生产者进程根据自身的数据下载情况和消费者进程通知信息的反馈实现缓冲区状态的判别,更加准确可靠,且节约资源。
39.本实施例中,上述方法使用java语言实现,设计相应队列,满足生产者线程与消费者线程并发运行。
40.生产者进程:产生一个数据,当要送入缓冲区的时候,要检查缓冲区是否已满,若未满,则可将数据送入缓冲区,并通知消费者进程,否则等待。
41.对于消费者进程:当它去取数据的时候,要看缓冲区中是否有数据可以去取,若有则取走一个数据,并通知生产者进程,否则等待。
42.以上是关于方法实施例的介绍,以下通过装置实施例,对本发明方案进行进一步说明。
43.本实施例还涉及一种异步下载装置,包括:
44.前端输入模块,被配置为,生成和发送异步下载请求;
45.生产消费模块,被配置为,构建和销毁生产者进程、消费者进程和缓冲区,生产者进程根据接收到的异步下载请求进行数据下载,数据下载过程中,首先检查缓冲区是否已满,若未满,则将下载的数据传输入缓冲区;若已满,则暂停数据下载并等待;消费者进程实时检查缓冲区中是否存储有数据,若有,则根据对应的异步下载请求从缓冲区中进行数据获取,否则等待;
46.文件处理模块,被配置为,将消费者进程获取的下载文件放入指定路径中。
47.可选的,装置还包括后台定时监控模块,该后台定时监控模块,被配置为,在获取异步下载请求后,将获取的异步下载请求存入预先设置的延时队列中,根据预先设置的时间间隔,定时依次执行延时队列中的异步下载请求。
48.具体地,前端发送异步请求,后台接收请求,将查询条件以及该次请求信息存入数
据库表。将下载请求加入延时队列,定时任务轮训延时队列,执行定时任务下载文件到文件服务器,公用下载页面下载文件。
49.根据系统资源与用户使用情况,及时更新生产消费模块中的相关线程池、下载量等相关参数。
50.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
51.用于实施本发明的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
52.在本发明的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
53.以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1