数据管理方法及装置、存储介质、电子设备与流程

文档序号:26483893发布日期:2021-08-31 17:39阅读:118来源:国知局
数据管理方法及装置、存储介质、电子设备与流程

本发明的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及数据管理方法及装置,存储介质和电子设备。



背景技术:

本部分旨在为权利要求中陈述的本发明的实施方式提供背景或上下文,此处的描述不因为包括在本部分中就承认是现有技术。

在目前的技术中,数据平台来说,作为上游的数据生产者,各类型的数据不仅在本数据平台向用户进行推送,还需要转授给其他相关的,或者下游的平台进行推送。例如,被推送的数据可以是歌曲歌单、视频或者新闻等类型的数据。



技术实现要素:

但是,在一些技术中,以音乐数据为例,对于数据平台的管理人员来说,在每天需要梳理向下游网站或下游平台推送歌曲歌单,并以人工录入的方式录入后台系统中,再根据管理人员选择的数据接收方,将歌单信息写入相关的数据表中。下游的授权方通过循环调用接口的方式来获取歌曲数据。但对于下游授权方来说,每次接口调用所能获取的数据数量有限,且当数据量较大时,会导致数据传输时间过长。

为此,非常需要一种改进的数据管理方法及装置、存储介质和电子设备,以提供一种能够为下游平台或用户自动推送数据、且数据传输效率高的数据推送的方案。

在本上下文中,本发明的实施方式期望提供一种数据管理方法和装置、存储介质和电子设备。

根据本公开的一个方面,提供一种数据管理方法,包括:

获取待推送数据,确定所述待推送数据的目标优先级,以及对应的接收端信息;

根据所述目标优先级查询队列信息,并在确定存在所述目标优先级对应的队列信息时,将所述待推送数据添加至所述队列信息对应的目标数据队列中;

根据所述接收端信息由所述目标数据队列中将所述待推送数据推送至对应的接收端。

在本公开的一种示例性实施例中,所述确定所述待推送数据对应的接收端信息,包括:

识别所述待推送数据对应的数据源信息和/或数据授权信息,以确定所述接收端信息。

在本公开的一种示例性实施例中,所述确定所述待推送数据的目标优先级信息,包括:

根据所述待推送数据的标记信息和/或属性信息配置对应的目标优先级信息。

在本公开的一种示例性实施例中,所述方法还包括:

预先配置队列信息存储集合,和对应的队列集合;

其中,所述队列信息存储集合用于存储队列信息,所述队列信息包括队列标识,以及队列标识对应的优先级信息;所述队列集合中包括与所述队列信息存储集合中各队列信息对应的数据队列。

在本公开的一种示例性实施例中,所述方法还包括:

所述队列信息存储集合包括各接收端对应的各优先级的队列信息子集,各所述队列信息子集中包括所述接收端对应的同一优先级的队列信息。

在本公开的一种示例性实施例中,所述根据所述目标优先级查询队列信息,包括:

根据所述目标优先级向所述队列信息存储集合中查询,在查询存在所述目标优先级对应的队列信息时,将所述待推送数据存储至所述队列信息对应的目标数据队列中;或者

在查询不存在所述目标优先级对应的队列信息时,在所述队列信息存储集合中创建所述目标优先级对应的目标队列信息,以及在所述队列集合中创建所述目标队列信息对应的目标数据队列,以用于将所述待推送数据存储至所述目标数据队列中。

在本公开的一种示例性实施例中,所述在确定存在所述目标优先级对应的目标数据队列时,所述方法还包括:

读取所述目标数据队列的当前数据计数,并在所述当前数据计数大于预设阈值时,为所述目标数据队列配置扩展队列,以用于将所述待推送数据添加至所述扩展队列。

在本公开的一种示例性实施例中,所述在确定存在所述目标优先级对应的目标数据队列时,所述方法还包括:

在所述目标优先级对应的目标数据队列包括至少两个时,读取各所述目标数据队列的创建时间,以用于将所述推送数据添加至创建时间最晚的所述目标数据队列。

在本公开的一种示例性实施例中,所述方法还包括:

获取接收端的数据提取请求,并解析所述数据提取请求以确定对应的接收端信息;

根据所述接收端信息向队列信息存储集合中按优先级顺序查询对应的队列信息,并在查询结果为空时,则向所述接收端反馈无数据的反馈结果;或者,

在查询存在队列信息时,由对应的目标数据队列将所述待推送数据推送至所述接收端。

在本公开的一种示例性实施例中,所述在查询存在相关队列信息时,由对应的目标数据队列将所述待推送数据推送至所述接收端,包括:

按优先级顺序由高至低从对应的所述目标数据队列中依次推送所述待推送数据;或者

在所述目标数据队列的优先级相同时,读取各所述目标数据队列的创建时间,以根据各所述目标数据队列的创建时间依次推送所述待推送数据。

在本公开的一种示例性实施例中,所述方法还包括:

在所述目标数据队列中的待推送数据推送完成后,在所述队列集合中删除所述目标数据队列,并在所述队列信息存储集合中清空所述目标数据队列对应的所述队列信息。

根据本公开的一个方面,提供一种数据管理装置,包括:

信息提取模块,用于获取待推送数据,确定所述待推送数据的目标优先级,以及对应的接收端信息;

数据队列处理模块,用于根据所述目标优先级查询队列信息,并在确定存在所述目标优先级对应的队列信息时,将所述待推送数据添加至所述目标优先级对应的目标数据队列中;

数据推送模块,用于根据所述接收端信息由所述目标数据队列中将所述待推送数据推送至对应的接收端。

在本公开的一种示例性实施例中,所述信息提取模块包括:

接收端信息提取模块,用于识别所述待推送数据对应的数据源信息和/或数据授权信息,以确定所述接收端信息。

在本公开的一种示例性实施例中,所述信息提取模块包括:

优先级信息提取模块,用于根据所述待推送数据的标记信息和/或属性信息配置对应的目标优先级信息。

在本公开的一种示例性实施例中,所述装置还包括:

队列配置模块,用于预先配置队列信息存储集合,和对应的队列集合;

其中,所述队列信息存储集合用于存储队列信息,所述队列信息包括队列标识,以及队列标识对应的优先级信息;所述队列集合中包括与所述队列信息存储集合中各队列信息对应的数据队列。

在本公开的一种示例性实施例中,所述队列信息存储集合包括各接收端对应的各优先级的队列信息子集,各所述队列信息子集中包括所述接收端对应的同一优先级的队列信息。

在本公开的一种示例性实施例中,所述数据队列处理模块包括:

查询执行模块,用于根据所述目标优先级向所述队列信息存储集合中查询,在查询存在所述目标优先级对应的队列信息时,将所述待推送数据存储至所述队列信息对应的目标数据队列中;或者

在查询不存在所述目标优先级对应的队列信息时,在所述队列信息存储集合中创建所述目标优先级对应的目标队列信息,以及在所述队列集合中创建所述目标队列信息对应的目标数据队列,以用于将所述待推送数据存储至所述目标数据队列中。

在本公开的一种示例性实施例中,所述数据队列处理模块包括:

队列扩展模块,用于在确定存在所述目标优先级对应的目标数据队列时,读取所述目标数据队列的当前数据计数,并在所述当前数据计数大于预设阈值时,为所述目标数据队列配置扩展队列,以用于将所述待推送数据添加至所述扩展队列。

在本公开的一种示例性实施例中,所述数据队列处理模块包括:

队列创建时间识别模块,用于在所述目标优先级对应的目标数据队列包括至少两个时,读取各所述目标数据队列的创建时间,以用于将所述推送数据添加至创建时间最晚的所述目标数据队列。

在本公开的一种示例性实施例中,所述装置还包括:

请求解析模块,用于获取接收端的数据提取请求,并解析所述数据提取请求以确定对应的接收端信息;

请求执行模块,用于根据所述接收端信息向队列信息存储集合中按优先级顺序查询对应的队列信息,并在查询结果为空时,则向所述接收端反馈无数据的反馈结果;或者,在查询存在队列信息时,由对应的目标数据队列将所述待推送数据推送至所述接收端。

在本公开的一种示例性实施例中,所述请求执行模块包括:

队列优先级处理模块,用于按优先级顺序由高至低从对应的所述目标数据队列中依次推送所述待推送数据;或者在所述目标数据队列的优先级相同时,读取各所述目标数据队列的创建时间,以根据各所述目标数据队列的创建时间依次推送所述待推送数据。

在本公开的一种示例性实施例中,所述装置还包括:

数据清理模块,用于在所述目标数据队列中的待推送数据推送完成后,在所述队列集合中删除所述目标数据队列,并在所述队列信息存储集合中清空所述目标数据队列对应的所述队列信息。

根据本公开的一个方面,提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时上述的数据管理方法。

根据本公开的一个方面,提供一种电子设备,包括:

处理器;以及

存储器,用于存储所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的数据管理方法。

根据本发明实施方式的数据管理方法,在获取待推送的数据后,首先确定待推送数据的优先级信息,并根据优先级信息将待推送数据添加至对应的队列中,从而可以根据接收端的信息,将属于该接收端的数据,按优先级的等级划分由数据队列中推送至对应的接收端。通过为不同的待推送数据配置不同的优先级,并为不同的优先级配置专属等级的数据队列,从而可以在海量数据的情况下,按需求配置数据的等级并向下游推送数据,从而有效的提升数据处理效率,降低系统的运维成本。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1示意性地示出了根据本发明实施方式的数据管理方法的流程图;

图2示意性地示出了根据本发明实施方式的写入新数据的方法的流程图;

图3示意性地示出了根据本发明实施方式的向下游推送数据方法的流程图;

图4示意性地示出了根据本发明实施方式的数据管理方法的架构示意图;

图5示意性地示出了根据本发明实施方式的数据管理装置的方框图;

图6示出了根据本发明实施方式的存储介质的示意图;以及

图7示意性示出了根据发明实施方式的电子设备的方框图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提供一种数据管理方法、数据管理装置、存储介质和电子设备。

在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本发明的若干代表性实施方式,详细阐述本发明的原理和精神。

发明概述

本发明人发现,对于数据平台来说,需要从上游的数据源获取原始数据,对原始数据进行梳理后向下游的用户平台或用户进行数据的分发或推送。以音乐平台为例,管理人员需要每天梳理需要向下游推送的歌曲歌单,以人工录入的方式将歌曲歌单添加到后台系统中,后台系统会依据管理人员人工选择的推送方,将歌曲歌单信息写入相关的待推送歌曲表中。下游平台在向音乐平台拉取歌曲歌单时,存在数量限制;例如,单次接口调用最多可以获取十首歌曲的信息。并且,若数据平台对接新的下游用户平台,则需要将曲库当前的存量歌曲全部传输给下游的用户平台;但由于下游对歌曲数据的消化能力有限,存量的传输会持续长达数月的时间。但在存量传输过程中仍然需要保证增量的重点歌曲数据优先传输至下游。然而,当前的技术架构无法做到在一套配置中完成高优先歌曲先传输的目标。

鉴于上述内容,本发明的基本思想在于:根据本发明实施方式的数据管理方法和数据管理装置,在获取待推送数据后,可以为不同的数据配置不同的优先级,并保存在各优先级对应的数据队列中。从而可以在推送时,根据不同的数据接收端从对应优先级的数据队列中按优先级推送数据。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

示例性方法

下面结合图1来描述根据本发明示例性实施方式的数据管理方法。

参考图1,所述数据管理方法可以包括以下步骤:

s1、获取待推送数据,确定所述待推送数据的目标优先级,以及对应的接收端信息;

s2、根据所述目标优先级查询队列信息,并在确定存在所述目标优先级对应的队列信息时,将所述待推送数据添加至所述队列信息对应的目标数据队列中;

s3、根据所述接收端信息由所述目标数据队列中将所述待推送数据推送至对应的接收端。

在本发明实施方式的数据管理方法中,通过在获取待推送数据后,为不同的数据配置不同的优先级,并保存在各优先级对应的数据队列中。从而可以在推送时,根据不同的数据接收端从对应优先级的数据队列中按优先级推送数据。通过为不同的待推送数据配置不同的优先级,并为不同的优先级配置专属等级的数据队列,从而可以在海量数据的情况下,按需求配置数据的等级并向下游推送数据,从而有效的提升数据处理效率,降低系统的运维成本。

在步骤s1中,获取待推送数据,确定所述待推送数据的目标优先级,以及对应的接收端信息。

在本公开的示例性实施方式中,上述的数据管理方法可以应用于进行数据管理、推送的服务器端。以待推送数据为歌曲数据为例,对于服务器端来说,可以监听上游一个或多个数据源的数据发布状态。在接收到上游数据源推送的更新的歌曲数据,或者在监听到上游数据源发布更新的歌曲数据后,便可以调用数据抓取端口,向上游数据源获取更新的歌曲数据,作为待推送数据。例如,服务器端可以按预设周期向上游数据源查询是否存在更新的歌曲数据。或者,实时的监听上游数据源发布的歌曲更新信息。

在本公开的示例性实施方式中,在获取待推送数据之后,可以配置对应的优先级信息。具体来说,可以根据所述待推送数据的标记信息和/或属性信息配置对应的目标优先级信息。举例来说,上述的标记信息可以是上游数据源标记的重要性等级标记,用于标记当前的歌曲数据为重点数据。或者,标记信息也可以是服务器端在获取该歌曲数据后,由运营管理人员人工标记的重点资源的标记信息。例如,若歌曲数据为重点推送数据,则可以人工配置最高优先级。

或者,也可以根据歌曲数据对应的歌手、作词作曲、榜单排名、音乐类型等属性信息配置对应的优先级。举例来说,可以根据歌手的排名配置歌曲的优先级。例如,若歌曲对应的歌手为排名为前500,则可以配置对应的优先级为次高优先级;或者,若歌曲对应的歌手为排名为500-1000,则可以配置对应的优先级为第三优先级;或者,对其他歌曲配置第四优先级。

在本公开的示例性实施方式中,在为歌曲数据配置优先级的同时,还可以确定各待推送数据对应的接收端信息。具体来说,确定接收端信息的方法可以包括:识别所述待推送数据对应的数据源信息和/或数据授权信息,以确定所述接收端信息。

举例来说,以服务器端作为数据平台为例,可以同时对接多个上游的数据源,也可以向下游同时对接多个下游的服务平台。基于此,可以预先构建上游数据源的数据授权信息与下游服务平台之间的对应关系,从而可以确定当前获取的待推送数据具体可以向下游的那些服务平台进行推送。

或者,对于数据源来说,在向数据平台推送数据时,便可以配置对应的数据授权信息。数据平台在接收到待推送数据时,可以根据预先分配的授权信息确定各待推送数据对应的下游接收端。

在步骤s2中,根据所述目标优先级查询队列信息,并在确定存在所述目标优先级对应的队列信息时,将所述待推送数据添加至所述队列信息对应的目标数据队列中。

在本公开的示例性实施方式中,为了保证下游的服务平台可以优先拉取高优先级的数据,可以在服务器端预先配置一独立的队列信息存储集合,以及一个队列集合。其中,所述队列信息存储集合可以用于维护队列信息和队列的优先级信息;具体的,可以采用zset结构存储队列信息;所述队列信息可以包括数据队列对应的队列标识,以及数据队列对应的优先级信息;队列标识可以是队列的名称或者编码,例如根据队列的创建时间进行命名;优先级信息也可以是热度值。所述队列集合中包括与所述队列信息存储集合中各队列信息对应的数据队列,各数据队列中存储各优先级的具体的待推送数据。

举例来说,在队列信息存储集合中,可以包括各优先级的数据队列对应的队列信息。例如,队列信息存储集合中可以包括最高优先级的队列信息的集合、次高优先级的队列信息的集合、第三优先级队列信息的集合和第四优先级队列信息的集合;或者,也可以是仅包括最高优先级的队列信息的集合、第三优先级队列信息的集合;或者其他组合形式。具体的,可以根据实际的数据确定队列信息存储集合中的内容。

对于各队列集合,可以配置对应的队列标识;例如,等级标识、id或队列信息编码标识等等。在队列集合中,包含各优先级的待推送数据对应的数据信息。以待推送数据为歌曲数据为例,队列信息存储集合中可以包括多个优先级的队列信息集合,一个队列信息集合中包含一个优先级对应的歌曲数据的队列标识和优先级信息;例如,可以包括队列的名称、编号、优先级信息等等信息。同时,对于队列集合来说,其中可以包含与队列信息存储集合中的队列信息集合对应的多个数据队列,一个数据队列中包含的全部歌曲数据对应同一优先级,其中歌曲数据可以包括歌曲的名称、编号、优先级信息、资源地址等等信息。

在本公开的示例性实施方式中,在根据所述目标优先级查询队列信息时,具体可以包括:

根据所述目标优先级向所述队列信息存储集合中查询,在查询存在所述目标优先级对应的队列信息时,将所述待推送数据存储至所述队列信息对应的目标数据队列中;或者

在查询不存在所述目标优先级对应的队列信息时,在所述队列信息存储集合中创建所述目标优先级对应的目标队列信息,以及在所述队列集合中创建所述目标队列信息对应的目标数据队列,以用于将所述待推送数据存储至所述目标数据队列中。

具体而言,对于队列信息存储集合,可以直接利用优先级信息向队列信息存储集合中进行查询。

举例来说,以待推送数据为最高优先级的歌曲数据为例,可以向队列信息存储集合中查询是否存在最高优先级的队列信息。若存在,则将该歌曲数据的歌曲信息添加至最高优先级对应的队列信息集合中;同时,将具体的歌曲数据添加至最高优先级对应的数据队列中。

或者,在查询队列信息存储集合中不存在最高优先级的队列信息时,则在队列信息存储集合中创建最高优先级对应的队列信息集合;同时,可以在队列集合中创建最高优先级的数据队列,并将该歌曲的歌曲信息,例如歌曲名称、编码(id)、资源地址添加至该最高优先级对应的数据队列中。通过数据队列中只写入歌曲信息,从而可以在上游数据源发生数据变更时,避免下游用户平台由于信息获取不及时而导致拉取数据不一致的问题。

此外;在本公开的其他示例性实施方式中,在各优先级对应的数据队列中,在包括歌曲信息的同时,还可以包括具体的歌曲数据。例如,基于上述实施例,在最高优先级的数据队列中,可以写入该最高优先级的歌曲信息,以及该歌曲的数据;从而将该具体的歌曲数据添加至该最高优先级的数据队列中。通过将具体的歌曲数据写入数据队列中,可以及时的对待推送数据进行更新。

此外,在本公开的其他示例性实时方式中,对于队列信息存储集合和队列集合来说,上述的方法还可以包括:所述队列信息存储集合包括各接收端对应的各优先级的队列信息子集,各所述队列信息子集中包括所述接收端对应的同一优先级的队列信息。

具体来说,对于队列信息存储集合,可以针对各接收端分别配置多个队列信息子集,各队列信息子集分别对应于不同的优先级。在一个队列信息子集中,仅包含一个接收端的一个优先级的全部队列信息。举例来说,各队列信息子集可以通过配置接收端标识信息的方式进行区别。通过为不同的接收端单独配置队列信息子集,从而可以在查询信息和添加信息时更加方便、快捷、准确的处理某一个或多个接收端的队列信息。便于服务器端对待推送数据进行批处理。

或者,在本公开的一些其他示例性实施方式中,在队列信息存储集合中,也可以针对下游各接收端配置一个接收端子集,在该接收端子集中包含对应于该接收端的不同优先级的队列信息。从而便于对各接收端的队列信息的管理;进而可以在查询队列信息时,直接根据接收端进行查询,提升数据查询效率。

在此基础上,在本公开的一些示例性实施方式中,在队列信息存储集合存在针对接收端而划分的子集合的情况下,在利用优先级信息向队列信息存储集合进行查询时,以待推送数据为最高优先级的歌曲数据为例,可以首先确定该最高优先级的歌曲数据对应的接收端信息;在确定对应的接收端后,可以利用接收端信息向队列信息存储集合中进行查询,判断是否存在该接收端的队列信息子集;以及,判断是否存在该最高优先级对应的队列信息。若在接收端的队列信息子集,且存在最高优先级对应的队列信息集合时,则将该最高优先级的歌曲数据的信息添加至对应的队列信息中。或者,若不存在属于该接收端的最高优先级的队列信息,则创建属于该接收端的最高优先级的队列信息子集,再将该最高优先级歌曲的歌曲信息添加至队列信息子集中。

在本公开的示例性实施方式中,基于上述内容,在将具体的待推送数据写入对应优先级的数据队列时,上述方法还可以包括:

读取所述目标数据队列的当前数据计数,并在所述当前数据计数大于预设阈值时,为所述目标数据队列配置扩展队列,以用于将所述待推送数据添加至所述扩展队列。

具体来说,为了避免数据队列的内容过大,保持数据队列具有可控的容量;在将待推送数据向对应的数据队列添加时,可以首先读取数据队列当前已存储的数据的数量,例如通过读取当前数据计数的方式,从而判断数据队列当前是否还有存储空间。若存在存储空间,即数据队列中存储数据的数量还未到预定的上限,则将待推送数据写入数据队列中。或者,若数据队列当前存储数据的数量已到达上限,没有可用的存储空间,则可以创建该优先级的扩展队列,并将待推送数据写入该扩展队列中。

举例来说,以歌曲数据为例,数据队列的存储上限为5000。在向最高优先级的数据队列中写入歌曲数据时,如数据队列中已存储的歌曲数量小于5000,则直接写入数据队列中;或者,若识别到数据队列当前存储歌曲的数量等于5000,则为最高优先级创建扩展队列,并将歌曲数据写入该扩展队列中。

基于上述内容,在本公开的一些示例性实施方式中,一个优先级可以同时存在多个数据队列。基于此,所述在确定存在所述目标优先级对应的目标数据队列时,上述方法还可以包括:

在所述目标优先级对应的目标数据队列包括至少两个时,读取各所述目标数据队列的创建时间,以用于将所述推送数据添加至创建时间最晚的所述目标数据队列。

具体来说,在为某一优先级创建扩展队列时,可以为初始数据队列和扩展队列配置队列标识。例如,可以根据队列创建时间配置队列标识信息。在确定目标优先级对应的目标数据队列时,若读取到该优先级下存在多个数据队列,便可以读取各数据队列的创建时间,并将创建时间最晚的数据队列确定为可以写入数据的目标数据队列。然后,可以再判断该目标数据队列当前的数据计数是否超过预设的上限。

在本公开的示例性实施方式中,以歌曲数据为例,由于资源优先级的分布数量不均等,在大量专辑推送时可能出现低优先级的队列中元素数量过多而引发的大key和热点问题,导致服务运行不稳定,单个队列中允许存储的歌曲数量不能超过5000,因此在写入时注意对相同优先级的队列进行拆分。通过redis有序队列在score值时会将member值按字典排序的特性,将创建的队列的命名方式设置为下游方_时间戳,就可以保证相同优先级下先创建的队列先拉取。参考图2所示,在服务器端,监听到上游数据源发布操作的歌曲a,计算出歌曲a的优先级1,查询到歌曲a需要推送的下游服务平台。在下游服务平台对应的队列信息集合中查询是否有优先级为1的元素,如果元素不存在,则新建一个元素,元素的member值(队列名称)为1,可以是当前时间戳,例如1_15129769400),score值(优先级)为1,同时新建一个名称为:1_当前时间戳(例如15129769400)的数据队列,将歌曲信息写入该数据队列中。

如果队列信息集合中元素存在,则选取其中member值最大的元素,判断该队列名对应的数据队列中存储的歌曲数量是否超过5000,如果数据队列中元素数量没有超过5000,则将歌曲信息推送至该队列,如果队列中元素超过5000,则新建一个元素,元素的member值为1_当前时间戳(例如1_15129769400),score值为1,同时新建一个名称为1_当前时间戳(例如15129769400)的队列,将歌曲信息推送至队列中。

在步骤s3中,根据所述接收端信息由所述目标数据队列中将所述待推送数据推送至对应的接收端。

在本公开的示例性实施方式中,在将待推送数据的信息添加至对应优先级的队列信息,并将具体的数据添加至对应的数据队列中后,作为服务器端,便可以根据待推送数据对应的接收端信息,按优先级顺序向对应的下游接收端主动推送数据。

或者,在一些其他的示例性实施方式中,也可以由下游的接收端主动向服务器端申请拉取数据。具体来说,上述的步骤s3可以包括:

步骤s31,获取接收端的数据提取请求,并解析所述数据提取请求以确定对应的接收端信息;

步骤s32,根据所述接收端信息向队列信息存储集合中按优先级顺序查询对应的队列信息,并在查询结果为空时,则向所述接收端反馈无数据的反馈结果;或者,

步骤s33,在查询存在队列信息时,由对应的目标数据队列将所述待推送数据推送至所述接收端。

举例来说,对于服务器端来说,在接收到下游平台发起的拉取歌曲的数据提取请求后,可以对该请求进行解析,确定具体的接收端信息。再利用接收端信息查询队列信息存储集合,判断是否存在该接收端对应的待推送数据。若查询不存在该接收端的待推送数据,则可以向该接收端反馈暂无推送内容的反馈结果。或者,在查询队列信息存储集合中存在该接收端对应的队列信息集合时,则选择优先级最高且队列创建时间最早的队列信息,并反馈给下游的接收端。

基于上述内容,在本公开的示例性实施方式中,上述的方法还可以包括:

步骤s34,在所述目标数据队列中的待推送数据推送完成后,在所述队列集合中删除所述目标数据队列,并在所述队列信息存储集合中清空所述目标数据队列对应的所述队列信息。

具体来说,在数据推送完成之后,判断数据队列中是否还存在未推送的数据;若有,则继续推送;若没有,则将该优先级的数据队列删除,同时,在队列信息存储集合中将该优先级的队列信息集合删除。

在本公开的示例性实施方式中,当服务器端收到下游发起的歌曲数据拉取请求时,会按优先级高低响应歌曲信息。参考图3所示,可以对下游的请求进行解析,确定请求对应的下游接收端。然后,可以在队列信息存储集合中按优先级高低查询该下游接收端对应的队列信息。如果没有相关的队列信息,则返回响应信息为暂无推送内容;如果查询存在相关的队列信息,则选择高优先级下最早创建的队列(member名称最小),寻找member名对应的队列,从队列中获取歌曲信息,并响应给下游接收端。响应后判断该数据队列是否还存在歌曲;如果不存在,则删除该数据队列,同时在队列信息存储集合中删除对应的元素。

综上所述,本公开提供的方法可以应用于多种类型数据的推送管理,例如歌曲、新闻、视频等数据。如图4所示的架构,在从上游数据源401获取到待推送数据后,在服务器端402可以首先确定对应的数据等级和下游接收端403,将待推送数据的相关信息添加至单独维护的队列信息存储集合中,添加至对应接收端的该优先级下的队列信息集合中;同时将待推送数据写入对应等级的数据队列中。从而可以在下游接收端主动拉取数据时,或者主动向下游接收端推送数据时,可以根据优先级由高至低进行数据的自动化推送,保证重点资源优先推送。通过配置单独维护的队列信息存储集合,以及配置对应的数据队列,可以实现千万级数据的推送;并且数据推送流程无需人工处理,极大的提升数据处理效率。同时,通过多队列的数据结构将推送数据进行拆分,有效的提升传输效率和系统稳定性。当存在大量待推送数据的情况时,仍能保证后发的热门数据能够优先推送给下游。

示例性装置

在介绍了本发明示例性实施方式的数据管理方法之后,接下来,参考图5对本发明示例性实施方式的数据管理装置进行描述。

参考图5所示,本发明示例性实施方式的数据管理装置50可以包括:信息提取模块501,数据队列处理模块502以及数据推送模块503;其中:

所述信息提取模块501可以用于获取待推送数据,确定所述待推送数据的目标优先级,以及对应的接收端信息。

所述数据队列处理模块502可以用于根据所述目标优先级查询队列信息,并在确定存在所述目标优先级对应的队列信息时,将所述待推送数据添加至所述目标优先级对应的目标数据队列中。

所述数据推送模块503可以用于根据所述接收端信息由所述目标数据队列中将所述待推送数据推送至对应的接收端。

根据本公开的示例性实施例,所述信息提取模块501可以包括:接收端信息提取模块。

所述接收端信息提取模块可以用于识别所述待推送数据对应的数据源信息和/或数据授权信息,以确定所述接收端信息。

根据本公开的示例性实施例,所述信息提取模块501可以包括:优先级信息提取模块。

所述优先级信息提取模块可以用于根据所述待推送数据的标记信息和/或属性信息配置对应的目标优先级信息。

根据本公开的示例性实施例,所述数据管理装置50还可以包括:队列配置模块。

所述队列配置模块可以用于预先配置队列信息存储集合,和对应的队列集合;其中,所述队列信息存储集合用于存储队列信息,所述队列信息包括队列标识,以及队列标识对应的优先级信息;所述队列集合中包括与所述队列信息存储集合中各队列信息对应的数据队列。

根据本公开的示例性实施例,所述队列信息存储集合包括各接收端对应的各优先级的队列信息子集,各所述队列信息子集中包括所述接收端对应的同一优先级的队列信息。

根据本公开的示例性实施例,所述数据队列处理模块502可以包括:查询执行模块。

所述查询执行模块可以用于根据所述目标优先级向所述队列信息存储集合中查询,在查询存在所述目标优先级对应的队列信息时,将所述待推送数据存储至所述队列信息对应的目标数据队列中;或者在查询不存在所述目标优先级对应的队列信息时,在所述队列信息存储集合中创建所述目标优先级对应的目标队列信息,以及在所述队列集合中创建所述目标队列信息对应的目标数据队列,以用于将所述待推送数据存储至所述目标数据队列中。

根据本公开的示例性实施例,所述数据队列处理模块502还可以包括:队列扩展模块。

所述队列扩展模块可以用于在确定存在所述目标优先级对应的目标数据队列时,读取所述目标数据队列的当前数据计数,并在所述当前数据计数大于预设阈值时,为所述目标数据队列配置扩展队列,以用于将所述待推送数据添加至所述扩展队列。

根据本公开的示例性实施例,所述数据队列处理模块502还可以包括:队列创建时间识别模块。

所述队列创建时间识别模块可以用于在所述目标优先级对应的目标数据队列包括至少两个时,读取各所述目标数据队列的创建时间,以用于将所述推送数据添加至创建时间最晚的所述目标数据队列。

根据本公开的示例性实施例,所述数据管理装置50还可以包括:请求解析模块、请求执行模块;其中:

所述请求解析模块可以用于获取接收端的数据提取请求,并解析所述数据提取请求以确定对应的接收端信息。

所述请求执行模块可以用于根据所述接收端信息向队列信息存储集合中按优先级顺序查询对应的队列信息,并在查询结果为空时,则向所述接收端反馈无数据的反馈结果;或者,在查询存在队列信息时,由对应的目标数据队列将所述待推送数据推送至所述接收端。

根据本公开的示例性实施例,所述请求执行模块可以包括:队列优先级处理模块。

所述队列优先级处理模块可以用于按优先级顺序由高至低从对应的所述目标数据队列中依次推送所述待推送数据;或者在所述目标数据队列的优先级相同时,读取各所述目标数据队列的创建时间,以根据各所述目标数据队列的创建时间依次推送所述待推送数据。

根据本公开的示例性实施例,所述数据管理装置50还可以包括:数据清理模块。

所述数据清理模块可以用于在所述目标数据队列中的待推送数据推送完成后,在所述队列集合中删除所述目标数据队列,并在所述队列信息存储集合中清空所述目标数据队列对应的所述队列信息。

由于本发明实施方式的数据管理装置的各个功能模块与上述数据管理方法发明实施方式中相同,因此在此不再赘述。

示例性存储介质

在介绍了本发明示例性实施方式的数据管理方法和装置之后,接下来,参考图6对本发明示例性实施方式的存储介质进行说明。

参考图6所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品600,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如java、c++等,还包括常规的过程式程序设计语言-诸如"c"语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

示例性电子设备

在介绍了本发明示例性实施方式的存储介质之后,接下来,参考图7对本发明示例性实施方式的电子设备进行说明。

图7显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图7所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830、显示单元840。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述"示例性方法"部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图1中所示的步骤s1至步骤s3。

存储单元820可以包括易失性存储单元,例如随机存取存储单元(ram)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(rom)8203。

存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线830可以包括数据总线、地址总线和控制总线。

电子设备800也可以与一个或多个外部设备70(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(i/o)接口850进行。电子设备800还包括显示单元840,其连接到输入/输出(i/o)接口850,用于进行显示。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了音频播放装置和音频分享装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1