CN112416626B - 一种数据处理方法和装置 - Google Patents
一种数据处理方法和装置 Download PDFInfo
- Publication number
- CN112416626B CN112416626B CN202011390578.4A CN202011390578A CN112416626B CN 112416626 B CN112416626 B CN 112416626B CN 202011390578 A CN202011390578 A CN 202011390578A CN 112416626 B CN112416626 B CN 112416626B
- Authority
- CN
- China
- Prior art keywords
- message
- characteristic data
- data
- dynamic array
- theme
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例提供一种数据处理方法和装置,应用于通信领域。该方法包括:获取消息队列中的消息;根据消息的类型,将消息写入一个或多个动态数组集合,得到动态数组总集合;接收来自消息使用者的数据获取请求;数据获取请求中包括消息使用者的特征数据;将特征数据存储在与特征数据的主题对应的哈希队列集合;根据哈希队列集合中的特征数据,在动态数组总集合中检索符合特征数据的目标消息;向消息使用者发送目标消息。该方法利用动态数组集合和哈希队列集合两种数据结构将消息分类存储并与消息使用者的特征数据进行关联,实现在数据的分析存储与推送中,不使用中间介质,避免中间介质带来的效率下降,提升了消息推送的实时性。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据处理方法和装置。
背景技术
随着科学技术的发展,人们对数据获取及时性的要求越来越高。消息队列数据分析与数据实时推送是指,针对海量数据,高效合理的进行规整、聚合、分析,同时将用户需求进行识别,根据用户的需求,实时的将分析的结果推送给用户。
目前,消息队列数据分析与数据实时推送,主要有两类实现方式。一种实现方式是利用现有缓存服务器作为媒介,例如远程字典服务器(Remote Dictionary Server,Redis),将消息队列的数据根据缓存服务器数据类型的不同进行分析和写入,同时设置程序定时将数据按照用户需求取出推送。另外一种实现方式是利用持久化介质对消息队列的数据分析的结果记录,例如MySQL数据库,利用程序实现持久化存储介质的缓存,将持久化存储介质内的结果同步缓存,或者利用某些特定持久化存储介质的特性同步至消息队列,按照用户需求,实现分析与实时推送。
第一种实现方式中,缓存服务器的连接、性能,以及定时的时间等,都会降低消息的实时性。同时,数据分析也局限于缓存服务器的数据类型,多样化与可扩展性不强。另外一种实现方式中,消息队列与持久化存储介质的交互耗时长,同时持久化存储介质中存在一些冗余数据和失效的数据。这些会降低数据分析与数据推送的效率,降低实时性。两种方式在分析与推送之间存在中间介质(缓存服务器或者持久化介质),使得效率下降,实时性低。
发明内容
本申请实施例提供一种数据处理方法和装置,利用消息队列发布-订阅模式和消息使用者的特征,结合基于编程语言Java中动态数组集合和哈希队列结合两种数据结构特性,实现消息队列中消息的数据分析与数据实时推送。
第一方面,本申请实施例提供一种数据处理方法,包括:获取消息队列中的消息;根据消息的类型,将消息写入一个或多个动态数组集合,得到动态数组总集合;其中,动态数组集合中的各位置定义有对应的元素内容;接收来自消息使用者的数据获取请求;数据获取请求中包括消息使用者的特征数据;特征数据用于唯一标识消息使用者;将特征数据存储在与特征数据的主题对应的哈希队列集合;根据哈希队列集合中的特征数据,在动态数组总集合中检索符合特征数据的目标消息;向消息使用者发送目标消息。
可选的,动态数组集合的第一个位置的元素内容表示主题,动态数组集合的第二个位置的元素内容表示时间,动态数组集合的其他位置表示具体内容;根据消息的类型,将消息写入一个或多个动态数组集合,包括:解析消息,得到消息的主题、时间和具体内容;根据一个或多个动态数组集合中各位置表示的内容,将消息的主题、时间和具体内容对应写入一个或多个动态数组集合。
可选的,将特征数据存储在与特征数据的主题对应的哈希队列集合,包括:在存在特征数据的主题对应的哈希队列集合的情况下,将特征数据存储在与特征数据的主题对应的哈希队列集合;在不存在特征数据的主题对应的哈希队列集合的情况下,创建与特征数据的主题对应的哈希队列集合,并将特征数据存储在与特征数据的主题对应的哈希队列集合。
可选的,根据哈希队列集合中的特征数据,在动态数组总集合中检索符合特征数据的目标消息,包括:根据动态数组集合的位置与元素内容的关联关系,在动态数组总集合中检索符合特征数据的目标消息。
可选的,动态数组集合具有有序性、不固定元素类型、并且大小可变的特点;动态数组集合和哈希队列集合创建在内存中。
第二方面,本申请实施例提供一种数据处理装置,包括:处理单元和通信单元。处理单元用于获取消息队列中的消息;还用于根据消息的类型,将消息写入一个或多个动态数组集合,得到动态数组总集合;其中,动态数组集合中的各位置定义有对应的元素内容;还用于将特征数据存储在与特征数据的主题对应的哈希队列集合;通信单元,用于接收来自消息使用者的数据获取请求;数据获取请求中包括消息使用者的特征数据;特征数据用于唯一标识消息使用者;还用于向消息使用者发送目标消息。
可选的,处理单元,具体用于解析消息,得到消息的主题、时间和具体内容;还用于根据一个或多个动态数组集合中各位置表示的内容,将消息的主题、时间和具体内容对应写入一个或多个动态数组集合。
可选的,处理单元,具体用于,在存在特征数据的主题对应的哈希队列集合的情况下,将特征数据存储在与特征数据的主题对应的哈希队列集合;在不存在特征数据的主题对应的哈希队列集合的情况下,创建与特征数据的主题对应的哈希队列集合,并将特征数据存储在与特征数据的主题对应的哈希队列集合。
可选的,处理单元,具体用于根据动态数组集合的位置与元素内容的关联关系,在动态数组总集合中检索符合特征数据的目标消息。
可选的,处理单元,具体用于将动态数组集合和哈希队列集合创建在内存中。
第三方面,本申请实施例提供一种电子设备,包括:存储器和处理器。存储器用于存储程序指令。处理器用于调用并执行存储器中的程序指令,执行如上任一项所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器被执行时,实现如上任一项所述的方法。
本申请实施例的数据处理方法,包括:获取消息队列中的消息;根据消息的类型,将消息写入一个或多个动态数组集合,得到动态数组总集合;接收来自消息使用者的数据获取请求;将消息使用者的特征数据存储在与特征数据的主题对应的哈希队列集合;根据哈希队列集合中的特征数据,在动态数组总集合中检索符合特征数据的目标消息并向消息使用者发送目标消息。该方法中,将消息写入动态数组集合进行数据存储,根据哈希队列集合存储消息使用者的特征数据,在动态数组总集合中检索目标消息并向消息使用者发送目标消息。利用动态数组集合和哈希队列集合两种数据结构将消息分类存储并与消息使用者的特征数据进行关联,在数据的分析存储与推送中,不使用任何中间介质,避免了中间介质带来的效率下降,提升了消息推送的实时性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请实施例的原理。
图1为本申请实施例提供的一种应用场景的示意图;
图2为本申请实施例提供的一种测试用例获取方法流程的示意图;
图3为本申请实施例提供的中消息写入动态数组集合流程的示意图;
图4为本申请实施例提供的动态数组集合的示意图;
图5为本申请实施例提供的接收消息使用者数据获取请求并存储的示意图;
图6为本申请实施例提供的检索动态数组总集合并推送目标信息的流程的示意图;
图7为本申请实施例提供的一种数据处理方法的流程的示意图;
图8为本申请实施例提供的一种数据处理装置的示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请实施例构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
目前,消息队列数据分析与推送在分析与推送之间存在中间介质(缓存服务器或持久化介质,例如:redis或关系型数据库等),使得消息的分析与推送结合率和效率降低,以及实时性不高。
本申请实施例提供一种数据处理方法和装置,包括:获取消息队列中的消息;根据消息的类型,将消息写入一个或多个动态数组集合,得到动态数组总集合;接收来自消息使用者的数据获取请求;将消息使用者的特征数据存储在与特征数据的主题对应的哈希队列集合;根据哈希队列集合中的特征数据,在动态数组总集合中检索符合特征数据的目标消息并向消息使用者发送目标消息。数据处理方法中,将消息写入动态数组集合进行数据存储,根据哈希队列集合存储消息使用者的特征数据,在动态数组总集合中检索目标消息并向消息使用者发送目标消息。利用动态数组集合和哈希队列集合两种数据结构将消息分类存储并与消息使用者的特征数据进行关联,在数据的分析存储与推送中,不使用任何中间介质,避免了中间介质带来的效率下降,提升了消息推送的实时性。
图1为本申请实施例提供的一种应用场景的示意图。如图1所示,包括:消息生产者(A1和A2)、消息使用者(C1和C2)和终端(B1-B4)。终端(B1-B4)中存储有消息队列相关***,终端(B1和B2)获取消息生产者(A1和A2)送达至消息队列的消息,对消息进行分析分类存储。终端(B3和B4)接收消息使用者(C1和C2)发送的数据获取请求,消息队列对请求信息进行分析,将消息使用者的特征数据存储,检索消息队列中存储的消息,并将目标信息发送给消息使用者。终端中消息队列有新消息时,自动发送给相关已发送过数据获取请求的消息使用者。
图2为本申请实施例提供的一种数据处理方法流程的示意图。如图2所示,本实施例的方法可以包括:
S101、获取消息队列中的消息。
消息队列是一种通信方式,主要用于消息的传输过程中对消息的保存在本申请实施例中,消息队列可以用在RabbitMQ***、ActiveMQ***和/或Kafka***等***中。
S102、根据消息的类型,将消息写入一个或多个动态数组集合,得到动态数组总集合;其中,动态数组集合中的各位置定义有对应的元素内容。
示例性的,消息的类型可以是社会信息和自然信息。消息的类型也可以是工业消息、农业消息、军事消息、政治消息、科技消息和文化消息等。消息的类型可根据分类的标准不同进行变化。
动态数组集合(ArrayList集合)各位置元素内容的定义,相当于持久化存储介质的结构设计。动态数组进行数据存储,在数据处理与推送中可以不使用持久化存储介质。
示例性的,图3为本申请实施例提供的中消息写入动态数组集合流程的示意图。如图3所示,消息队列中每多一条消息,对消息进行分析,根据消息类型分类写入对应动态数组集合。例如:第1条消息按照各位置元素内容的定义写入动态数组集合1,第2条消息按照各位置元素内容的定义写入动态数组集合2。一条消息对应一个动态数组集合,因此,定义一个动态数组总集合,将每一个动态数组集合写入。例如:将动态数组集合1写入动态数组总集合的第1个位置,将动态数组集合2写入动态数组总集合的第2个位置。
S103、接收来自消息使用者的数据获取请求;数据获取请求中包括消息使用者的特征数据;特征数据用于唯一标识消息使用者。
接收数据获取请求可能的实现方式有:接收消息使用者在编辑框中输入的文字;接收消息使用者通过语音控件输入的语音;接受消息使用者点击***提供的关键词等。
可能的实现方式中,消息使用者的数据特征可以是名称、身份标识号码(identity,ID)等。消息使用者的数据获取请求包括消息使用者的特征数据和数据请求的主题,是判断检索目标消息和目标消息推送的依据。
S104、将特征数据存储在与特征数据的主题对应的哈希队列集合。
哈希队列集合(HashSet集合)有多个,按照不同主题分类,将所有请求相同主题的消息使用者的特征数据进行存储,方便确定后续消息推送的消息使用者,提高消息的推送效率。哈希队列集合元素具有唯一性,即一个哈希队列集合中对一个消息使用者的特征数据存储一次。哈希队列集合的使用,可以提高消息推送时对消息使用者去重复的效率。
S105、根据哈希队列集合中的特征数据,在动态数组总集合中检索符合特征数据的目标消息。
根据动态数组集合的各位置元素内容的定义查询数据,查找目标消息。可以提高***的查询速率。
S106、向消息使用者发送目标消息。
一些实施例中,通过传输协议,向消息使用者发送消息。消息队列与消息使用者间的传输可以使用WebSocket通信协议。
本申请实施例的数据处理方法,通过对动态数组集合和哈希队列集合的编排定义,替代中间介质的结构设计,实现数据分析结果与消息使用者特征数据的记录,将数据分析与实时推送结合,避免数据分析与推送之间中间介质的使用,实现实时分析与实时推送。
可选的,S102中,动态数组集合的第一个位置的元素内容表示主题,动态数组集合的第二个位置的元素内容表示时间,动态数组集合的其他位置表示具体内容。根据消息的类型,将消息写入一个或多个动态数组集合,包括:解析消息,得到消息的主题、时间和具体内容;根据一个或多个动态数据集合中各位置表示的内容,将消息的主题、时间和具体内容对应写入一个或多个动态数组集合。
可能的实现方式中,消息的解析可以采用自然语言处理算法。消息的具体内容包括:地点、人物和/或事件等。将消息按照主题、时间和具体内容进行解析,并写入动态数组集合,可以将消息进行分类存储,方便后续查询。
示例性的,图4为本申请实施例提供的动态数组集合的示意图。动态数组集合中位置1对应的元素内容是消息的主题,位置2对应的元素内容是消息的时间,位置3对应的元素内容是消息的第一个具体内容(图4中用具体内容1表示)。
可选的,S104中,将特征数据存储在与特征数据的主题对应的哈希队列集合,包括:在存在特征数据的主题对应的哈希队列集合的情况下,将特征数据存储在与特征数据的主题对应的哈希队列集合;在不存在特征数据的主题对应的哈希队列集合的情况下,创建与特征数据的主题对应的哈希队列集合,并将特征数据存储在与特征数据的主题对应的哈希队列集合。
示例性的,图5为本申请实施例提供的接收消息使用者数据获取请求并存储的示意图。图5所示,消息使用者分别发送数据获取请求,***解析数据获取请求中的主题和分析消息使用者的特征数据,存储消息使用者的特征数据至各自主题对应的哈希队列集合中。每个主题对应一个哈希队列集合。
可选的,S105中,根据哈希队列集合中的特征数据,在动态数组总集合中检索符合特征数据的目标消息,包括:根据动态数组集合的位置与元素内容的关联关系,在动态数组总集合中检索符合特征数据的目标消息。
上述根据动态数组集合的位置与元素内容的关联关系是指对各位置的元素内容的定义。如图4所示,位置1对应消息的主题,与消息的主题关联;位置2对应消息的时间,与消息的时间关联,如此类推。可以理解的是,图4所示的对应关系为其中一种,位置与元素具体内容的对应顺序可更换。
本申请实施例根据动态数据集合的位置与元素内容的关联关系进行检索,可以提高检索速度,缩短检索时间,进而缩短数据分析与推送的时间,提高实时性。
示例性的,图6为本申请实施例提供的检索动态数组总集合并推送目标信息的流程的示意图。如图6所示,根据动态数组集合的位置与元素内容的关联关系,在动态数组总集合中检索符合特征数据的目标消息。根据动态数组集合定义找到对应哈希队列集合,找到消息使用者特征,发送目标消息给该哈希队列集合中所有消息使用者。
一些实施例中,动态数组集合具有有序性、不固定元素类型、并且大小可变的特点;动态数组集合和哈希队列集合创建在内存中。
本申请实施例中,内存具有读写效率高,无网络传输消耗,传输耗时低的特点。内存中数据是实时数据,不存在历史过期数据。将动态数组集合和哈希队列集合创建在内存中,可以提高数据分析和推送的效率。
一些实施例中,接收消息使用者的数据获取请求后,可以对消息使用者进行新消息的自动推送。该方法如下:对消息队列的新消息进行分析,提取可用的消息内容,并将可用的消息内容进行分类,根据消息的类型写入动态数组集合和总集合。根据动态数组集合的位置与元素内容的关联关系,在动态数组总集合中检索符合特征数据的目标消息。根据动态数组集合定义找到对应哈希队列集合,遍历哈希队列集合内容,找到消息使用者特征,将目标消息推送给该哈希队列集合中所有消息使用者。
示例性的,图7为本申请实施例提供的一种数据处理方法的流程的示意图。数据处理方法的流程包括:
S201、获取消息队列消息。
S202、对消息进行分析分类。
S203、根据元素内容定义写入动态数组集合。
S204、将动态数组集合写入总集合。
S205、得到总集合数据。
S206、消息使用者发起数据获取请求。
S207、消息使用者特征数据。
S208、是否存在特征数据中的主题对应的哈希队列集合。
S209、若存在,将用户特征写入哈希队列集合;若不存在,新建对应主题的哈希队列集合。
S210、根据哈希队列集合里的消息使用者特征,检索总集合数据,将符合消息使用者特征的总集合数据解析成最终的传输数据。
S211、通过传输协议将传输数据实时推送给消息使用者。
本申请实施例中,定义消息的分析结果与消息使用者的特征的编排规范,即定义各种数据结构中的属性所代表的含义。每当有消息使用者请求实时获取数据时,将消息使用者的特征规范按照编排规范写入数据结构。消息队列传来的消息数据,分析数据,将数据分析结果(包括消息队列的主题)按照编排规范写入数据结构。检索消息队列,根据不同的消息使用者特征取出不同的数据分析结果。
本申请实施例的数据处理方法将Java中数据结构动态数组集合中的属性按照元素内容定义,将消息队列数据分析,将分析结果按照对应的定义写入至数据结构的属性中,另外,将消息使用者的特征数据按照规范写入数据结构哈希队列集合中。Java创建数据结构是在内存中,对数据结构的读写实际是对内存的读写。内存与各种缓存服务器,持久换存储介质相比,读写效率是最高的,并且无网络传输的消耗,耗时几乎可忽略不计。数据分析的结果是在内存中存储,内存中的数据是实时数据,不存在历史过期数据,基于目前普通电脑的配置,内存完全可以满足。数据的推送方面,按照消息使用者特征的编排规范与数据分析结果的编排规范,取出消息使用者特征数据与数据分析结果,将数据分析结果推送至消息使用者特征数据描述的消息使用者。该方法避免了中间介质的增删改查,持久化存储介质的效率低的问题,提高了数据推送效率,提高实时性,同时,还具备很大的扩展性。
根据本申请实施例的另一个方面,本申请实施例还提供了一种数据处理装置,如图8所示,包括:处理单元11和通信单元21。处理单元用于获取消息队列中的消息;还用于根据消息的类型,将消息写入一个或多个动态数组集合,得到动态数组总集合;其中,动态数组集合中的各位置定义有对应的元素内容;还用于将特征数据存储在与特征数据的主题对应的哈希队列集合;通信单元,用于接收来自消息使用者的数据获取请求;数据获取请求中包括消息使用者的特征数据;特征数据用于唯一标识消息使用者;还用于向消息使用者发送目标消息。
可选的,处理单元,具体用于解析消息,得到消息的主题、时间和具体内容;还用于根据一个或多个动态数组集合中各位置表示的内容,将消息的主题、时间和具体内容对应写入一个或多个动态数组集合。
可选的,处理单元,具体用于在存在特征数据的主题对应的哈希队列集合的情况下,将特征数据存储在与特征数据的主题对应的哈希队列集合;在不存在特征数据的主题对应的哈希队列集合的情况下,创建与特征数据的主题对应的哈希队列集合,并将特征数据存储在与特征数据的主题对应的哈希队列集合。
可选的,处理单元,具体用于根据动态数组集合的位置与元素内容的关联关系,在动态数组总集合中检索符合特征数据的目标消息。
可选的,处理单元,具体用于将动态数组集合和哈希队列集合创建在内存中。
本实施例的一种数据处理装置,可以用于执行上述任一实施例的方法,其实现原理和技术效果类似,此处不再赘述。
根据本申请实施例的另一个方面,本申请实施例还提供了一种移动终端,移动终端包括:如上任一实施例所述的装置。
根据本申请实施例的另一个方面,本申请实施例还提供了一种电子设备,包括:存储器,处理器;存储器用于存储处理器可执行指令的存储器;其中,当执行存储器中的指令时,处理器被配置为实现如上任一实施例所述的方法。
根据本申请实施例的另一个方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如上任一实施例所述的方法。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
还应理解,在本申请各实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取消息队列中的消息;
根据所述消息的类型,将所述消息写入一个或多个动态数组集合,得到动态数组总集合;其中,所述动态数组集合中的各位置定义有对应的元素内容;
接收来自消息使用者的数据获取请求;所述数据获取请求中包括所述消息使用者的特征数据;所述特征数据用于唯一标识所述消息使用者;
将所述特征数据存储在与所述特征数据的主题对应的哈希队列集合;
根据所述哈希队列集合中的特征数据,在所述动态数组总集合中检索符合所述特征数据的目标消息;
向所述消息使用者发送所述目标消息。
2.根据权利要求1所述的方法,其特征在于,所述动态数组集合的第一个位置的元素内容表示主题,所述动态数组集合的第二个位置的元素内容表示时间,所述动态数组集合的其他位置表示具体内容;所述根据所述消息的类型,将所述消息写入一个或多个动态数组集合,包括:
解析所述消息,得到所述消息的主题、时间和具体内容;
根据所述一个或多个动态数组集合中各位置表示的内容,将所述消息的主题、时间和具体内容对应写入所述一个或多个动态数组集合。
3.根据权利要求1所述的方法,其特征在于,所述将所述特征数据存储在与所述特征数据的主题对应的哈希队列集合,包括:
在存在所述特征数据的主题对应的哈希队列集合的情况下,将所述特征数据存储在与所述特征数据的主题对应的哈希队列集合;
在不存在所述特征数据的主题对应的哈希队列集合的情况下,创建与所述特征数据的主题对应的哈希队列集合,并将所述特征数据存储在与所述特征数据的主题对应的哈希队列集合。
4.根据权利要求1所述的方法,其特征在于,所述根据所述哈希队列集合中的特征数据,在所述动态数组总集合中检索符合所述特征数据的目标消息,包括:
根据所述动态数组集合的位置与元素内容的关联关系,在所述动态数组总集合中检索符合所述特征数据的目标消息。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述动态数组集合具有有序性、不固定元素类型、并且大小可变的特点;
所述动态数组集合和所述哈希队列集合创建在内存中。
6.一种数据处理装置,其特征在于,包括:
处理单元,用于获取消息队列中的消息;
所述处理单元,还用于根据所述消息的类型,将所述消息写入一个或多个动态数组集合,得到动态数组总集合;其中,所述动态数组集合中的各位置定义有对应的元素内容;
通信单元,用于接收来自消息使用者的数据获取请求;所述数据获取请求中包括所述消息使用者的特征数据;所述特征数据用于唯一标识所述消息使用者;
所述处理单元,还用于将所述特征数据存储在与所述特征数据的主题对应的哈希队列集合;根据所述哈希队列集合中的特征数据,在所述动态数组总集合中检索符合所述特征数据的目标消息;
所述通信单元,还用于向所述消息使用者发送所述目标消息。
7.根据权利要求6所述的装置,其特征在于,所述动态数组集合的第一个位置的元素内容表示主题,所述动态数组集合的第二个位置的元素内容表示时间,所述动态数组集合的其他位置表示具体内容;所述根据所述消息的类型,将所述消息写入一个或多个动态数组集合,包括:
所述处理单元,具体用于解析所述消息,得到所述消息的主题、时间和具体内容;
所述处理单元,还用于根据所述一个或多个动态数组集合中各位置表示的内容,将所述消息的主题、时间和具体内容对应写入所述一个或多个动态数组集合。
8.根据权利要求6所述的装置,其特征在于,包括:
所述处理单元,具体用于,在存在所述特征数据的主题对应的哈希队列集合的情况下,将所述特征数据存储在与所述特征数据的主题对应的哈希队列集合;
在不存在所述特征数据的主题对应的哈希队列集合的情况下,创建与所述特征数据的主题对应的哈希队列集合,并将所述特征数据存储在与所述特征数据的主题对应的哈希队列集合。
9.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,执行如权利要求1-5中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011390578.4A CN112416626B (zh) | 2020-12-02 | 2020-12-02 | 一种数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011390578.4A CN112416626B (zh) | 2020-12-02 | 2020-12-02 | 一种数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112416626A CN112416626A (zh) | 2021-02-26 |
CN112416626B true CN112416626B (zh) | 2023-06-06 |
Family
ID=74829591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011390578.4A Active CN112416626B (zh) | 2020-12-02 | 2020-12-02 | 一种数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416626B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742099B (zh) * | 2021-08-25 | 2024-06-21 | 武汉美和易思数字科技有限公司 | 基于集合的消息消费方法、生产方法、***及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874527A (zh) * | 2018-07-19 | 2018-11-23 | 贵州电网有限责任公司 | 一种iaas指标与paas指标分拆采集的方法 |
CN109921927A (zh) * | 2019-02-20 | 2019-06-21 | 苏州人之众信息技术有限公司 | 基于微服务的实时调用链跟踪方法 |
CN110837423A (zh) * | 2018-08-17 | 2020-02-25 | 天津京东深拓机器人科技有限公司 | 一种自动导引运输车数据采集的方法和装置 |
CN111158892A (zh) * | 2020-04-02 | 2020-05-15 | 支付宝(杭州)信息技术有限公司 | 一种任务队列生成方法、装置及设备 |
CN111177476A (zh) * | 2019-12-05 | 2020-05-19 | 北京百度网讯科技有限公司 | 数据查询方法、装置、电子设备及可读存储介质 |
CN111580965A (zh) * | 2020-04-30 | 2020-08-25 | 深圳壹账通智能科技有限公司 | 数据请求的处理方法及*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11281706B2 (en) * | 2016-09-26 | 2022-03-22 | Splunk Inc. | Multi-layer partition allocation for query execution |
US11023234B2 (en) * | 2017-04-12 | 2021-06-01 | Oracle International Corporation | Method and system for restructuring of collections for synchronization |
-
2020
- 2020-12-02 CN CN202011390578.4A patent/CN112416626B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874527A (zh) * | 2018-07-19 | 2018-11-23 | 贵州电网有限责任公司 | 一种iaas指标与paas指标分拆采集的方法 |
CN110837423A (zh) * | 2018-08-17 | 2020-02-25 | 天津京东深拓机器人科技有限公司 | 一种自动导引运输车数据采集的方法和装置 |
CN109921927A (zh) * | 2019-02-20 | 2019-06-21 | 苏州人之众信息技术有限公司 | 基于微服务的实时调用链跟踪方法 |
CN111177476A (zh) * | 2019-12-05 | 2020-05-19 | 北京百度网讯科技有限公司 | 数据查询方法、装置、电子设备及可读存储介质 |
CN111158892A (zh) * | 2020-04-02 | 2020-05-15 | 支付宝(杭州)信息技术有限公司 | 一种任务队列生成方法、装置及设备 |
CN111580965A (zh) * | 2020-04-30 | 2020-08-25 | 深圳壹账通智能科技有限公司 | 数据请求的处理方法及*** |
Non-Patent Citations (3)
Title |
---|
"Eliminating contention bottlenecks in multithreaded MPI";Hoang-Vu Dang;《Parallel Computing》;第69卷;第1-23页 * |
"基于主题的教育信息定向采集***";连惠杰;《中国优秀硕士学位论文全文数据库 信息科技辑》(2011年第12期);第I139-185页 * |
"电信计费/结算业务处理流程实时监控探讨";纪贵;《中国新通信》;第21卷(第07期);第42-43页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112416626A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105827706B (zh) | 消息推送装置及方法 | |
US8799291B2 (en) | Forensic index method and apparatus by distributed processing | |
CN101236569B (zh) | 一种基于ContextFS上下文文件***的高效动态路径解析方法 | |
CN108255958A (zh) | 数据查询方法、装置和存储介质 | |
US20140330837A1 (en) | Method, apparatus and system for pushing micro-blogs | |
KR101621385B1 (ko) | 클라우드 스토리지 서비스의 파일 검색 시스템 및 방법, 및 파일 제어 방법 | |
CN111258978A (zh) | 一种数据存储的方法 | |
CN113609374A (zh) | 基于内容推送的数据处理方法、装置、设备及存储介质 | |
CN111046041A (zh) | 数据处理方法和装置、存储介质及处理器 | |
US20120310918A1 (en) | Unique join data caching method | |
CN114116827B (zh) | 一种用户画像数据的查询***及方法 | |
CN112307318B (zh) | 一种内容发布方法、***及装置 | |
CN112416626B (zh) | 一种数据处理方法和装置 | |
CN105912696A (zh) | 一种基于对数归并的dns索引创建方法及查询方法 | |
US9081858B2 (en) | Method and system for processing search queries | |
CN112052259A (zh) | 数据处理方法、装置、设备及计算机存储介质 | |
CN104572945A (zh) | 一种基于云存储空间的文件搜索方法和装置 | |
CN107977381B (zh) | 数据配置方法、索引管理方法、相关装置以及计算设备 | |
CN112732751B (zh) | 一种医学数据处理方法、装置、存储介质及设备 | |
Bin et al. | Storage and access optimization scheme based on correlation probabilities in the internet of vehicles | |
Nouvellet et al. | A Quantitative analysis of digital library user behaviour based on access logs | |
CN115687810A (zh) | 网页搜索方法、装置及相关设备 | |
KR20120085375A (ko) | 로그데이터 분석시스템 | |
CN103891244B (zh) | 一种进行数据存储和检索的方法及装置 | |
US8788483B2 (en) | Method and apparatus for searching in a memory-efficient manner for at least one query data element |
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 |