数据处理方法、装置、计算机设备和存储介质

文档序号:1802175 发布日期:2021-11-05 浏览:14次 >En<

阅读说明:本技术 数据处理方法、装置、计算机设备和存储介质 (Data processing method, data processing device, computer equipment and storage medium ) 是由 林炎鑫 于 2021-08-02 设计创作,主要内容包括:本申请涉及一种数据处理方法、装置、计算机设备和存储介质。该方法包括:接收目标终端的第一请求;生成与第一请求对应的第一任务;将第一任务的优先级设为第一优先级后保存至任务队列,第一优先级高于第二任务的第二优先级;执行任务队列中的第一任务。对首包数据的数据大小和优先级进行配置,使得首包数据作为轻量数据被优先返回至目标终端,这种首包优先发送策略加快了用户请求下载流媒体数据的响应速度,减少用户等待时长,减少卡顿现象的发生,提高了服务质量。(The application relates to a data processing method, a data processing device, computer equipment and a storage medium. The method comprises the following steps: receiving a first request of a target terminal; generating a first task corresponding to the first request; setting the priority of the first task as a first priority and then storing the first priority to a task queue, wherein the first priority is higher than a second priority of the second task; the first task in the task queue is executed. The data size and the priority of the first packet of data are configured, so that the first packet of data is preferentially returned to the target terminal as lightweight data, the first packet of data is preferentially sent, the response speed of the current media data requested by a user is increased, the waiting time of the user is shortened, the occurrence of the pause phenomenon is reduced, and the service quality is improved.)

数据处理方法、装置、计算机设备和存储介质

技术领域

本申请涉及通信技术领域,尤其涉及一种数据处理方法、装置、计算机设备和存储介质。

背景技术

在关于互联网的诸多应用中,下载是一种常见的应用。现有的下载方法中,如果用户数量较大,同一时刻可能会有较多用户都向同一个网络节点申请下载不同的文件。那么该网络节点就会按照下载请求的顺序依次向用户返回对应的下载文件。但是网络节点响应每一个下载请求的时候都需要耗费较长时间,在多下载任务的情况下,这种按照请求顺序依次响应的方式非常缓慢,严重拉长了对各个下载请求的响应时间,且容易导致网络堵塞,下载卡顿,用户的等待时长拉长等问题,给用户带来不好的上网体验。

发明内容

为了解决上述技术多下载任务时由于排队等待导致响应时长较长的技术问题,本申请提供了一种数据处理方法、装置、计算机设备和存储介质。

第一方面,本申请提供了一种数据处理方法,该方法包括:

接收目标终端的第一请求,其中,第一请求是对目标流媒体数据的下载请求;

生成与第一请求对应的第一任务,其中,第一任务用于为目标终端提供目标流媒体数据中的第一部分数据,第一部分数据为目标终端获取目标流媒体数据的过程中返回的首包数据;

将第一任务的优先级设为第一优先级后保存至任务队列,其中,第一优先级高于第二任务的第二优先级,第二任务是在第一任务之前生成的、用于为终端提供流媒体数据中的第二部分数据,第二部分数据为终端获取流媒体数据的过程中在首包数据之后返回的数据;

执行任务队列中的第一任务。

第二方面,本申请提供了一种数据处理装置,该装置包括:

接收模块,用于接收目标终端的第一请求,其中,第一请求是对目标流媒体数据的下载请求;

任务生成模块,用于生成与第一请求对应的第一任务,其中,第一任务用于为目标终端提供目标流媒体数据中的第一部分数据,第一部分数据为目标终端获取目标流媒体数据的过程中返回的首包数据;

保存队列模块,用于将第一任务的优先级设为第一优先级后保存至任务队列,其中,第一优先级高于第二任务的第二优先级,第二任务是在第一任务之前生成的、用于为终端提供流媒体数据中的第二部分数据,第二部分数据为终端获取流媒体数据的过程中在首包数据之后返回的数据;

任务执行模块,用于执行任务队列中的第一任务。

第三方面,本申请提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一项的数据处理方法的步骤。

第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一项的数据处理方法的步骤。

上述数据处理方法、装置、计算机设备和存储介质的有益效果如下:本申请对每个下载请求先生成一个处理优先级高于非首包任务的第一任务以用于向终端返回对应的首包数据,对首包数据的数据大小和优先级进行配置,使得首包数据作为轻量数据被优先返回至目标终端,这种首包优先发送策略加快了用户请求下载流媒体数据的响应速度,减少用户等待时长,减少卡顿现象的发生,提高了服务质量。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为一个实施例中数据处理方法的应用环境图;

图2为一个实施例中数据处理方法的流程示意图;

图3为一个实施例中数据处理装置的结构框图;

图4为一个实施例中计算机设备的内部结构图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

图1为一个实施例中数据处理方法的应用环境图。参照图1,该数据处理方法应用于数据处理系统。该数据处理系统包括终端110、内容节点120和服务器130。终端110和内容节点120、服务器130通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以为手机、平板电脑、笔记本电脑等中的至少一种。内容节点120具体可以为CDN节点或家庭节点,家庭节点为普通用户家庭利用闲置带宽提供下载服务的路由器或机顶盒等,CDN节点为内容分发网络(Content Delivery Network,CDN网络)中的节点。服务器130用于存储流媒体数据,服务器130可以用独立的服务器或者是多个服务器组成的服务器集群来实现。内容节点120接收终端110的第一请求,生成第一请求对应的第一任务,将第一任务的优先级设为第一优先级后保存至任务队列,执行任务队列中的第一任务,以从服务器130中获取对应的流媒体数据或流媒体数据的部分数据。

图2为一个实施例中一种数据处理方法的流程示意图。本实施例主要以该方法应用于上述图1中的家庭节点来举例说明,参照图2,该数据处理方法具体包括如下步骤:

S100:接收目标终端的第一请求。

具体地,本实施例的数据处理方法可以应用于家庭节点。家庭节点具体可以为用户家庭利用闲置带宽提供下载服务的路由器、盒子等。目标终端为手机、电脑、笔记本电脑、平板电脑等中的一种。第一请求是对目标流媒体数据的下载请求。更具体地,第一请求是目标终端向家庭节点发送的用于获取目标流媒体数据的下载请求。

家庭节点可以接收除目标终端以外的其他终端发送的目标流媒体数据或其他流媒体数据的下载请求。

S200:生成与第一请求对应的第一任务。

具体地,第一任务用于为目标终端提供目标流媒体数据中的第一部分数据,第一部分数据为目标终端获取目标流媒体数据的过程中返回的首包数据。

流媒体数据一般是一种具有一定数据大小的数据,通常不会很小,如果向终端一次性返回流媒体数据,则从用户发送下载请求到用户接收到流媒体数据的过程会可能有较长的等待时间。因此,在向目标终端提供目标流媒体数据时不会一次性将整个目标流媒体数据传输至目标终端,而是将目标流媒体数据分批提供给目标终端。这样用户能够快速得到请求对应的响应,不会等待很久,同时给剩下的数据的返回一定的缓冲时间。而每次传输目标流媒体数据的部分数据时都需要通过执行对应的任务才能实现。第一任务是为目标终端提供目标流媒体数据的第一部分数据而生成的任务。目标流媒体数据的第一部分数据表示目标流媒体数据的首包数据。在向其他终端提供除流媒体数据时也会先提供首包数据。第一部分数据特指目标流媒体数据的首包数据。

S300:将第一任务的优先级设为第一优先级后保存至任务队列。

具体地,第一优先级高于第二任务的第二优先级,第二任务是在第一任务之前生成的、用于为终端提供流媒体数据中的第二部分数据,第二部分数据为终端获取流媒体数据的过程中在首包数据之后返回的数据。

将接收到的第一请求对应的第一任务保存至任务队列中,第一任务的优先级高于任务队列中第二任务的优先级,第一任务用于指示第一请求对应的首包数据的处理任务,第二任务用于指示任务队列中的非首包数据对应的处理任务。

家庭节点在接收目标终端的第一请求之前或同一时刻,还可能接收过终端发送的对流媒体数据的其他下载请求。终端可以是目标终端,即目标终端在发送第一请求之前,还可以发送过请求其他流媒体数据的其他请求。终端还可以是除目标终端以外的其他终端,其他终端可以请求下载目标流媒体数据,也可以请求下载其他流媒体数据。家庭节点根据其他下载请求也会向对应的终端先返回首包数据,再返回非首包数据。因此,在生成第一任务之前,家庭节点已根据其他下载请求生成了用于向对应的终端返回首包数据的首包任务和返回除首包数据之外的其他非首包数据的第二任务。非首包数据即终端获取流媒体数据过程中首次之后返回的数据,即首包数据之后返回的数据。每个下载请求都有对应的首包数据和非首包数据返回,且非首包数据一定在对应的首包数据之后返回。首包数据一般会尽量的包括流媒体数据中少量的部分数据。

第一任务属于首包任务。任务队列中可能存在除了第一任务之外的其他首包任务,还可能存在其他下载请求对应的用于向终端提供或返回非首包数据的第二任务。第二部分数据即为其他下载请求所对应的非首包数据。

任务队列中的第一任务的优先级为第一优先级,第二任务的优先级为第二优先级,第一优先级高于第二优先级。因此,即使第二任务是先于第一任务生成的,但是第一任务比第二任务优先执行。这样可以保证在任务队列中同时存在第一任务和第二任务的情况下,每个下载请求的首包任务比其他或自身的非首包任务优先执行。

S400:执行任务队列中的第一任务。

具体地,在满足第一优先级对应的条件的情况下,消费并执行第一任务,以将目标流媒体数据的第一部分数据即首包数据通过首包任务策略返回至目标终端。

首包数据一般包括了流媒体数据中少量的部分数据。因此,第一部分数据作为首包数据也会包含目标流媒体数据的中的少量部分数据,第一部分数据的数据大小较小,因此,第一任务的响应速度会加快。由于第一任务的第一优先级比第二任务的第二优先级高,因此,可以进一步加快第一任务的响应速度。本实施例对首包数据的数据大小和优先级进行配置,使得首包数据作为轻量数据被优先返回至目标终端,即,对每个下载请求都先返回一个首包数据,加快了用户请求下载流媒体数据的响应速度,避免在一个下载请求上一直占用下载时间而导致其他下载请求的漫长等待过程,也避免了一拥而上的下载,减少用户等待时长,提高了服务质量。

在一个实施例中,生成与第一请求对应的第一任务,包括:

生成与第一请求对应的第一数据读取任务;

在第一数据读取任务执行完的情况下,生成第一数据发送任务。

具体地,第一数据读取任务用于读取目标流媒体数据中的第一部分数据,第一任务包括第一数据读取任务;第一数据发送任务用于将读取的第一部分数据发送给目标终端,第一任务包括第一数据发送任务。

第一任务包括第一数据读取任务和第一数据发送任务。数据的读取和发送由不同的任务执行,且,对于同一个数据先执行数据读取任务再执行数据发送任务,且,同一个数据对应的数据读取任务和数据发送任务不同时生成,而是先生成对应的数据读取任务,在数据读取任务执行完成后,再生成对应的数据发送任务。即,数据读取任务先生成先执行,数据发送任务后生成后执行。

本实施例先执行步骤S200-S400:生成与第一请求对应的第一数据读取任务,对第一数据读取任务设置优先级后保存至任务队列,执行该第一数据读取任务,以从目标流媒体数据中读取第一部分数据。

本实施例再执行步骤S200-S400:生成与第一请求对应的第一数据发送任务,对第一数据发送任务设置优先级后保存至任务队列,执行该第一数据发送任务,以将读取到的第一部分数据发送至目标终端。

本实施例读取数据和发送数据先后通过不同的任务完成,先生成数据读取任务来探测是否还有未发送的数据,有未发送的数据则成功读取数据后才会生成对应的数据发送任务;在没有未发送的数据的情况下,则不需要额外生成数据发送任务,从而可以避免生成无效的数据发送任务。在计算机设备中进程或线程的处理速度是有限的,大量无效任务的产生会一定程度影响或延迟有效任务的执行,因此本实施例通过减少无效任务生成,加快了有效任务的执行,进而加快了用户请求的响应速度,提高服务质量。

在一个实施例中,第二任务包括用于读取第二部分数据的第二数据读取任务和用于发送第二部分数据的第二数据发送任务。

具体地,第一任务为目标流媒体数据对应的首包任务,第二任务为其他下载请求对应的流媒体数据的非首包任务。不论是首包任务还是非首包任务都有读取和发送的操作,因此,每个第二任务都包括了对应的第二数据读取任务和第二数据发送任务。

步骤S300具体包括以下步骤:

将第一数据读取任务保存至数据读取任务队列;

将第一数据发送任务保存至数据发送任务队列。

具体地,任务队列包括由数据读取线程处理的数据读取任务队列,数据读取线程对第一数据读取任务的处理优先级高于对第二数据读取任务的处理优先级;任务队列包括由数据发送线程处理的数据发送任务队列,数据发送线程对第一数据发送任务的处理优先级高于对第二数据发送任务的处理优先级。

在上个实施例中生成的第一任务包括第一数据读取任务和第一数据发送任务。本实施例进一步将第一数据读取任务和第一数据发送任务分别保存至不同的任务队列。即,将第一数据读取任务保存至数据读取任务队列,将第一数据发送任务保存至数据发送任务队列。同时,不同的任务队列中的任务由不同的线程来执行。即,数据读取任务队列中的数据读取任务由数据读取线程来处理,数据发送任务队列中的数据发送任务由数据发送线程来处理。实现了数据读取任务和数据发送任务保存至不同的任务队列,且,由不同的线程来执行。进而实现了两种不同任务的执行在一定程度上互不干扰,双线程的任务处理方式可以进一步提高任务的处理速度、加快用户请求的响应速度,提高服务质量。

另外,本实施例还保证了在同一个任务队列中第一数据读取任务的处理优先级高于第二数据读取任务的优先级,第一数据发送任务的处理优先级高于第二数据发送任务的优先级。即,保证了首包任务中的数据读取任务高于非首包任务的数据读取任务,首包任务中的数据发送任务高于非首包任务的数据发送任务。进而一定程度上保证了在接收到用户的下载请求时尽可能快的先返回少量的首包数据来响应用户请求,减少用户等待时长。

在一个实施例中,将第一数据读取任务保存至数据读取任务队列,包括:

在存在多个首包读取任务的情况下,获取多个首包读取任务对应的下载请求中的时间戳;

从数据读取任务队列的队首开始,将多个首包读取任务按照时间戳从早到晚的顺序保存。

具体地,家庭节点可能会接收到多个下载请求,这些下载请求中可能有些下载请求在第一请求之前,也可能有些下载请求在第一请求之后。而每个下载请求都有对应的首包任务和非首包任务,因此,会存在多个首包任务的情况。每个首包任务都有对应的首包读取任务和首包发送任务,因此,会存在有多个首包数据的首包读取任务和多个首包数据的首包发送任务的情况产生。首包读取任务用于读取首包数据,首包发送任务用于发送首包数据。

首包读取任务属于数据读取任务,都会被保存至数据读取任务队列中。因此,需要对数据读取任务中的所有首包读取任务按照下载请求的时间戳进行排序。先发送的下载请求即时间戳越早的下载请求对应的首包读取任务排在越前面,处理优先级越高,越优先被处理。其中,多个首包读取任务包括第一数据读取任务,即,第一数据读取任务属于首包读取任务中的一个,在同样都是首包读取任务的情况,其优先级需要根据其对应的第一请求的时间戳的排序来确定,其中,第一请求也属于下载请求,为多个下载请求中的一个。这样也可以按照先请求先处理的原则向各个下载请求对应的用户返回对应的少量的首包数据,进一步减少用户的等待时间。

在一个实施例中,将第一数据发送任务保存至数据发送任务队列,包括:

在存在多个首包发送任务的情况下,获取多个首包发送任务对应的下载请求中的时间戳;

从数据发送任务队列的队首开始,将多个首包发送任务按照时间戳从早到晚的顺序保存。

具体地,家庭节点可能会接收到多个下载请求,这些下载请求中可能有些下载请求在第一请求之前,也可能有些下载请求在第一请求之后。而每个下载请求都有对应的首包任务和非首包任务,因此,会存在多个首包任务的情况。每个首包任务都有对应的首包读取任务和首包发送任务,因此,会存在有多个首包数据的首包读取任务和多个首包数据的首包发送任务的情况产生。

首包发送任务属于数据发送任务,都会被保存至数据发送任务队列中。因此,需要对数据发送任务中的所有首包发送任务按照下载请求的时间戳进行排序。先发送的下载请求即时间戳越早的下载请求对应的首包发送任务排在越前面,处理优先级越高,越优先被处理。其中,多个首包发送任务包括第一数据发送任务,即,第一数据发送任务属于首包发送任务中的一个,在同样都是首包发送任务的情况,其优先级需要根据其对应的第一请求的时间戳的排序来确定,其中,第一请求也属于下载请求,为多个下载请求中的一个。这样也可以按照先请求先处理的原则向各个下载请求对应的用户返回对应的少量的首包数据,进一步减少用户的等待时间。

在一个实施例中,生成与第一请求对应的第一数据读取任务,包括:确定位于目标流媒体数据首部、且为第一数据量的待读取的第一部分数据;生成用于读取第一部分数据的第一数据读取任务;

在生成与第一请求对应的第一数据读取任务之后,该方法还包括:确定目标流媒体数据中未被读取过、且为第二数据量的待读取的第三部分数据;生成用于读取第三部分数据的第三数据读取任务,其中,第二数据量大于第一数据量。

具体地,在生成第一数据读取任务的时候需要确定读取目标流媒体数据中哪部分的数据,因此,需要定位第一部分数据在目标流媒体数据的位置以及大小。第一数据量表示待读取的第一部分数据的数据大小,本实施例确定第一部分数据即第一请求对应的首包数据为目标流媒体数据中位于首部、且数据大小为第一数据量的部分数据。根据获取到的第一部分数据的位置和数据大小生成第一数据读取任务。第一数据读取任务携带了第一部分数据在目标流媒体数据的位置和数据大小。

第一部分数据为目标流媒体数据对应的首包数据,目标流媒体数据还有除第一部分数据之外的其他数据即第三部分数据需要读取,第三部分数据为目标流媒体数据中除第一部分数据(一种首包数据)之外的非首包数据。第三部分数据的数据大小为第二数据量。为了保证首包数据快速返回给用户,需要第二数据量大于第一数据量。优先地将首包数据尽可能的缩减到小的数据大小。将尽可能的缩减首包数据,即第一数据量的第一部分数据越少越好,可以有利于首包任务的快速执行,用户能够尽可能快的获取到下载请求的第一次响应,减少用户的等待。

本申请中同一个下载请求对应的首包数据和非首包数据是在不同时刻执行的,因此,目标流媒体数据的非首包数据即第三数据能够顺利返回至目标终端也需要生成有对应的第三数据读取任务。第三部分数据可以是目标流媒体数据中除第一部分数据外的其他部分数据中的一部分,也可以是目标流媒体数据中除第一部分数据外的其他部分数据中的全部。本实施例确定第三部分数据的数据大小为第二数据量、确定第三部分数据的位置为目标流媒体数据中未被读取过的数据,根据获取到的第三部分数据的位置和数据大小生成第三数据读取任务。第三数据读取任务携带了第三部分数据在目标流媒体数据的位置和数据大小。

在一个实施例中,在生成用于读取第三部分数据的第三数据读取任务之后,该方法还包括:

将第三数据读取任务保存至数据读取任务队列;

在数据读取线程执行完第三数据读取任务的情况下,生成第三数据发送任务;

将第三数据发送任务保存至数据发送任务队列;

通过数据发送线程执行第三数据发送任务。

具体地,数据读取线程对第三数据读取任务的处理优先级低于对第一数据读取任务的处理优先级;第三数据发送任务用于将读取的第三部分数据发送给目标终端;数据发送线程对第三数据发送任务的处理优先级低于对第一数据发送任务的处理优先级。

第三数据读取任务属于数据读取任务的一种,因此需要保存至数据读取任务队列中。但是由于第三数据读取任务是用于读取目标流媒体数据中的非首包数据,因此,第三数据读取任务的处理优先级要低于用于读取第一部分数据(一种首包数据)的第一数据读取任务的处理优先级。

又由于,同一个数据对应的数据读取任务和数据发送任务中,遵循先生成数据读取任务、执行完数据读取任务后再生成对应的数据发送任务、最后执行该数据发送任务的规则;且,数据读取任务由数据读取线程执行,数据发送任务由数据发送线程执行。因此,数据读取线程执行完第三数据读取任务后才会生成第三数据发送任务。且,第三数据发送任务会被保存至数据发送任务队列,等待数据发送线程的执行。

第一数据发送任务与第三数据发送任务都保存至同一个数据发送任务队列,第三数据发送任务在第三数据读取任务之后生成,第三数据读取任务是在第一数据读取任务之后生成,第一数据发送任务是在第一数据读取任务之后生成,本实施例约束了第一数据发送任务的处理优先级高于第三数据发送任务的处理优先级,保证了第一任务尽快被执行,进而第一部分数据尽快返回至目标终端,减少用户的等待时长。

在一个实施例中,将第三数据读取任务保存至数据读取任务队列,包括:

在存在多个非首包读取任务的情况下,获取多个非首包读取任务对应的下载请求中的时间戳;

从数据读取任务队列的队尾开始,将多个非首包读取任务按照时间戳从晚到早的顺序保存。

具体地,多个非首包读取任务包括第三数据读取任务。

在任务队列中离队列队首的任务越被优先执行,里队列队尾的任务越被后执行。

家庭节点可能会接收到多个下载请求,这些下载请求中可能有些下载请求在第一请求之前,也可能有些下载请求在第一请求之后。而每个下载请求都有对应的首包任务和非首包任务,因此,会存在多个非首包任务的情况。

第二任务就属于非首包任务,且第二任务是其他下载请求对应的非首包任务,用于向对应的终端返回对应的流媒体数据的非首包数据。

每个非首包任务都有对应的非首包读取任务和非首包发送任务,因此,会存在有多个非首包数据的非首包读取任务和多个非首包数据的非首包发送任务的情况产生。非首包读取任务用于读取非首包数据,非首包发送任务用于发送非首包数据。

非首包读取任务属于数据读取任务,第三数据读取任务也属于非首包读取任务,都会被保存至数据读取任务队列中。在同一个数据读取任务队列中,包含了第二任务对应的非首包读取任务和第三数据读取任务,这些都属于非首包读取任务。因此,需要对数据读取任务中的所有非首包读取任务按照下载请求的时间戳进行排序。先发送的下载请求即时间戳越早的下载请求对应的非首包读取任务排在越前面,处理优先级越高,越优先被处理。其中,多个非首包读取任务包括第三数据读取任务,即,第三数据读取任务属于非首包读取任务中的一个,在同样都是非首包读取任务的情况,其优先级需要根据其对应的第一请求的时间戳的排序来确定,其中,第一请求也属于下载请求,为多个下载请求中的一个。

上述在数据读取任务队列中存在多个非首包读取任务的情况下,按照获取到下载请求对应的时间先后顺序保存各个非首包读取任务的处理顺序,这样也可以按照先请求先处理的原则向各个下载请求对应的用户返回对应的非首包数据,进一步减少用户的等待时间。

上述数据处理方法,利用数据处理方法独权的技术特征进行推导,实现能够解决背景技术中所提出技术问题的有益效果。

图2为一个实施例中数据处理方法的流程示意图。应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图3所示,提供了一种数据处理装置,该装置包括:

接收模块100,用于接收目标终端的第一请求,其中,第一请求是对目标流媒体数据的下载请求;

任务生成模块200,用于生成与第一请求对应的第一任务,其中,第一任务用于为目标终端提供目标流媒体数据中的第一部分数据,第一部分数据为目标终端获取目标流媒体数据的过程中返回的首包数据;

保存队列模块300,用于将第一任务的优先级设为第一优先级后保存至任务队列,其中,第一优先级高于第二任务的第二优先级,第二任务是在第一任务之前生成的、用于为终端提供流媒体数据中的第二部分数据,第二部分数据为终端获取流媒体数据的过程中在首包数据之后返回的数据;

任务执行模块400,用于执行任务队列中的第一任务。

在一个实施例中,任务生成模块200具体包括:

读取任务生成模块,用于生成与第一请求对应的第一数据读取任务,其中,第一数据读取任务用于读取目标流媒体数据中的第一部分数据,第一任务包括第一数据读取任务;

发送任务生成模块,用于在第一数据读取任务执行完的情况下,生成第一数据发送任务,其中,第一数据发送任务用于将读取的第一部分数据发送给目标终端,第一任务包括第一数据发送任务。

在一个实施例中,第二任务包括用于读取第二部分数据的第二数据读取任务和用于发送第二部分数据的第二数据发送任务。

其中,保存队列模块300具体包括:

读取任务保存模块,用于将第一数据读取任务保存至数据读取任务队列,其中,任务队列包括由数据读取线程处理的数据读取任务队列,数据读取线程对第一数据读取任务的处理优先级高于对第二数据读取任务的处理优先级;

发送任务保存模块,用于将第一数据发送任务保存至数据发送任务队列,其中,任务队列包括由数据发送线程处理的数据发送任务队列,数据发送线程对第一数据发送任务的处理优先级高于对第二数据发送任务的处理优先级。

在一个实施例中,读取任务保存模块具体包括:

第一时间戳获取模块,用于在存在多个首包读取任务的情况下,获取多个首包读取任务对应的下载请求中的时间戳,其中,多个首包读取任务包括第一数据读取任务;

第一排序保存模块,用于从数据读取任务队列的队首开始,将多个首包读取任务按照时间戳从早到晚的顺序保存。

在一个实施例中,读取任务生成模块具体包括:

第一数据定位单元,用于确定位于目标流媒体数据首部、且为第一数据量的待读取的第一部分数据;

第一读取任务生成单元,用于生成用于读取第一部分数据的第一数据读取任务。

读取任务生成模块还包括:

第二数据定位单元,用于确定目标流媒体数据中未被读取过、且为第二数据量的待读取的第三部分数据;

第二读取任务生成单元,用于生成用于读取第三部分数据的第三数据读取任务,其中,第二数据量大于第一数据量。

在一个实施例中,读取任务保存模块,还用于将第三数据读取任务保存至数据读取任务队列,其中,数据读取线程对第三数据读取任务的处理优先级低于对第一数据读取任务的处理优先级;

发送任务生成模块,还用于在数据读取线程执行完第三数据读取任务的情况下,生成第三数据发送任务,其中,第三数据发送任务用于将读取的第三部分数据发送给目标终端;

发送任务保存模块,还用于将第三数据发送任务保存至数据发送任务队列,其中,数据发送线程对第三数据发送任务的处理优先级低于对第一数据发送任务的处理优先级;

第二任务执行模块,用于通过数据发送线程执行第三数据发送任务。

本申请的任务执行模块包括第一任务执行模块和第二任务执行模块。第一任务执行模块,用于执行数据读取任务。更具体地,第一任务执行模块用于通过数据读取线程执行数据读取任务队列中的数据读取任务,例如执行第一数据读取任务、第三数据读取任务以及第二任务对应的数据读取任务。

第二任务执行模块,用于执行数据发送任务。更具体地,第二任务执行模块用于通过数据发送线程执行数据发送任务队列中的数据发送任务,例如执行第一数据发送任务、第三数据发送任务以及第二任务对应的数据发送任务。

在一个实施例中,读取任务保存模块具体包括:

第二时间戳获取模块,用于在存在多个非首包读取任务的情况下,获取多个非首包读取任务对应的下载请求中的时间戳,其中,多个非首包读取任务包括第三数据读取任务;

第二排序保存模块,用于从数据读取任务队列的队尾开始,将多个非首包读取任务按照时间戳从晚到早的顺序保存。

图4示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的家庭节点。如图4所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现数据处理方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行数据处理方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的数据处理装置可以实现为一种计算机程序的形式,计算机程序可在如图4所示的计算机设备上运行。计算机设备的存储器中可存储组成该数据处理装置的各个程序模块,比如,图3所示的接收模块100、任务生成模块200、保存队列模块300和任务执行模块400。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的数据处理方法中的步骤。

图4所示的计算机设备可以通过如图3所示的数据处理装置中的接收模块100执行步骤接收目标终端的第一请求,其中,第一请求是对目标流媒体数据的下载请求。计算机设备可通过任务生成模块200执行步骤生成与第一请求对应的第一任务,其中,第一任务用于为目标终端获取目标流媒体数据中的第一部分数据,第一部分数据为目标终端获取目标流媒体数据的过程中首次返回的首包数据。计算机设备可通过保存队列模块300执行步骤将第一任务的优先级设为第一优先级后保存至任务队列,其中,第一优先级高于第二任务的第二优先级,第二任务是在第一任务之前生成的、用于为终端获取流媒体数据中的第二部分数据,第二部分数据为终端获取流媒体数据的过程中首次之后返回的数据。计算机设备可通过任务执行模块400执行步骤执行任务队列中的第一任务。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一项实施例所述的数据处理方法。

更具体地,处理器执行计算机程序时执行以下步骤:接收目标终端的第一请求,其中,第一请求是对目标流媒体数据的下载请求;生成与第一请求对应的第一任务,其中,第一任务用于为目标终端获取目标流媒体数据中的第一部分数据,第一部分数据为目标终端获取目标流媒体数据的过程中首次返回的首包数据;将第一任务的优先级设为第一优先级后保存至任务队列,其中,第一优先级高于第二任务的第二优先级,第二任务是在第一任务之前生成的、用于为终端获取流媒体数据中的第二部分数据,第二部分数据为终端获取流媒体数据的过程中首次之后返回的数据;执行任务队列中的第一任务。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一项实施例所述的数据处理方法。

更具体地,计算机程序被处理器执行时执行以下步骤:接收目标终端的第一请求,其中,第一请求是对目标流媒体数据的下载请求;生成与第一请求对应的第一任务,其中,第一任务用于为目标终端获取目标流媒体数据中的第一部分数据,第一部分数据为目标终端获取目标流媒体数据的过程中首次返回的首包数据;将第一任务的优先级设为第一优先级后保存至任务队列,其中,第一优先级高于第二任务的第二优先级,第二任务是在第一任务之前生成的、用于为终端获取流媒体数据中的第二部分数据,第二部分数据为终端获取流媒体数据的过程中首次之后返回的数据;执行任务队列中的第一任务。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指示相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种实现裸金属检查流程的方法、系统、设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!