CN110851288B - 消息处理方法及装置 - Google Patents
消息处理方法及装置 Download PDFInfo
- Publication number
- CN110851288B CN110851288B CN201910988184.XA CN201910988184A CN110851288B CN 110851288 B CN110851288 B CN 110851288B CN 201910988184 A CN201910988184 A CN 201910988184A CN 110851288 B CN110851288 B CN 110851288B
- Authority
- CN
- China
- Prior art keywords
- processed
- processing
- message
- queue
- data
- 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/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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例提供了一种消息处理方法及装置,该方法首先接收待处理数据,待处理数据包括待处理消息的多个操作结果,然后从多个缓存队列中确定待处理消息对应的目标缓存队列,并将待处理数据缓存至目标缓存队列,接着从多个处理进程中确定所述目标缓存队列对应的目标处理进程,将所述待处理数据传输至所述目标处理进程,最后根据所述目标处理进程的处理结果,得到所述待处理消息的审核结果。本申请通过多个处理进程同步处理多个待处理数据,保证了处理速度,并且保证了同一待处理消息的多个操作结果严格按照审核顺序被处理,避免了处理顺序与审核顺序不一致造成的审核结果错误,进而提高了审核结果的准确性。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种消息处理方法及装置。
背景技术
目前的审核***在同一时刻会产生多个审核结果,为了保证操作界面的流畅性,通常采用多进程方式进行数据处理。多进程直接处理是开启多个进程,多个进程分别从同一个异步队列按照先进先出的方式处理数据,但当多个进程同时处理时,会由于处理速度的不同,导致同一条消息的多个审核结果后进的结果可能被优先处理,从而导致审核结果出现错误。
发明内容
本申请实施例提供一种消息处理方法及装置,以提高消息处理的速度和准确性。
为解决上述技术问题,本申请实施例提供以下技术方案:
一方面,本申请提供一种消息处理方法,包括:
接收待处理数据,待处理数据包括待处理消息的多个操作结果;
从多个缓存队列中确定待处理消息对应的目标缓存队列,并将待处理数据缓存至目标缓存队列;
从多个处理进程中确定目标缓存队列对应的目标处理进程,将待处理数据传输至目标处理进程;
根据目标处理进程的处理结果,得到待处理消息的审核结果。
一方面,本申请提供一种消息处理装置,包括:
接收模块,用于接收待处理数据,待处理数据包括待处理消息的多个操作结果;
缓存模块,用于从多个缓存队列中确定待处理消息对应的目标缓存队列,并将待处理数据缓存至目标缓存队列;
传输模块,用于从多个处理进程中确定目标缓存队列对应的目标处理进程,将待处理数据传输至目标处理进程;
处理模块,用于根据目标处理进程的处理结果,得到待处理消息的审核结果。
在一种实施例中,消息处理装置还包括:
队列数获取模块,用于获取缓存队列的队列数;
队列生成模块,用于生成队列数对应数量的缓存队列。
在一种实施例中,队列数获取模块包括:
缓存数量获取子模块,用于获取待处理数据的数据数量;
第一队列数确定子模块,用于根据数据数量,确定队列数。
在一种实施例中,队列数获取模块包括:
处理能力确定子模块,用于获取设备的处理能力数据;
第二队列数确定子模块,用于根据处理能力数据,确定队列数。
在一种实施例中,缓存模块包括:
队列标识确定子模块,用于根据待处理消息的消息标识、以及缓存队列的队列数,确定消息标识对应的队列标识;
第一目标缓存队列确定子模块,用于将队列标识对应的缓存队列确定为目标缓存队列。
在一种实施例中,缓存模块包括:
缓存数量获取子模块,用于获取各缓存队列中待处理数据的缓存数量;
第二目标缓存队列确定子模块,用于根据缓存数量,从多个缓存队列中选择目标缓存队列。
在一种实施例中,传输模块包括:
进程标识确定子模块,用于根据缓存队列的队列标识、以及处理进程的进程数,确定队列标识对应的进程标识;
第一目标处理进程确定子模块,用于将进程标识对应的处理进程确定为目标处理进程。
在一种实施例中,传输模块包括:
处理能力确定子模块,用于获取各处理进程中待处理队列的处理数量;
第二目标处理进程确定子模块,用于根据处理数量,从多个处理进程中选择目标处理进程。
在一种实施例中,处理模块用于将审核结果存到区块链中。
一方面,本申请实施例提供了一种计算机设备,其包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行程序时实现如上述方法的步骤。
一方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现上述方法中的步骤。
本申请实施例提供了一种消息处理方法及装置,该方法首先接收待处理数据,待处理数据包括待处理消息的多个操作结果,然后从多个缓存队列中确定待处理消息对应的目标缓存队列,并将待处理数据缓存至目标缓存队列,接着从多个处理进程中确定所述目标缓存队列对应的目标处理进程,将所述待处理数据传输至所述目标处理进程,最后根据所述目标处理进程的处理结果,得到所述待处理消息的审核结果。本申请通过多个处理进程同步处理多个待处理数据,保证了处理速度,并且保证了同一待处理消息的多个操作结果严格按照审核顺序被处理,避免了处理顺序与审核顺序不一致造成的审核结果错误,进而提高了审核结果的准确性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的消息处理***的场景示意图;
图2是本申请实施例提供的消息处理方法的第一种流程图;
图3a是本申请实施例提供的消息处理方法的第二种流程图;
图3b是本申请实施例提供的消息处理方法的第三种流程图;
图3c是本申请实施例提供的消息处理方法的第四种流程图;
图3d是本申请实施例提供的消息处理方法的第五种流程图;
图3e是本申请实施例提供的消息处理方法的第六种流程图;
图4是本申请实施例提供的消息处理方法的模型示意图;
图5a是本申请实施例提供的消息处理方法的中缓存队列与处理进程的第一种匹配示意图;
图5b是本申请实施例提供的消息处理方法的中缓存队列与处理进程的第二种匹配示意图;
图6是本申请实施例提供的消息处理方法的第七种流程图;
图7a是本申请实施例提供的消息处理装置的第一种结构示意图;
图7b是本申请实施例提供的消息处理装置的第二种结构示意图;
图8是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种消息处理方法及装置、计算机设备和计算机可读存储介质。其中,该消息处理装置可以集成在计算机设备中,该计算机设备可以是服务器,也可以是终端等设备。
请参阅图1,图1为本申请实施例所提供的消息处理***的场景示意图,该***可以包括终端以及服务器,终端之间、服务器之间、以及终端与服务器之间通过各种网关组成的互联网等方式连接通信,其中,该应用场景中包括用户终端11和服务器12;其中:
用户终端11包括但不局限于平板电脑、笔记本电脑、个人计算(PC,PersonalComputer)、微型处理盒子、或者其他设备等;主要提供表情搜索功能、表情展示功能等;
服务器12包括本地服务器和/或远程服务器等。
用户终端11和服务器12位于无线网络或有线网络中,用户终端11和服务器12进行数据交互。用户终端11向服务器12发送消息,服务器12接收消息,并对消息进行多道审核,将多道审核的操作结果按审核顺序处理后得到审核结果,决定该消息最终的发布与否。
需要说明的是,图1所示的***场景示意图仅仅是一个示例,本申请实施例描述的服务器以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着***的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
请参阅图2,图2是本申请实施例提供的消息处理方法的第一种流程示意图,该消息处理方法包括:
201:接收待处理数据,待处理数据包括待处理消息的多个操作结果。
待处理消息指用户终端从用户处获取,并发送至服务器中等待审核的消息。待处理消息进入服务器中,需要经过多道工序的审核,每道审核产生一个操作结果,在依次经过所有的审核后,得到和审核工序数量相等的操作结果,形成待处理数据。当仅接受一个待处理消息时,待处理数据对应一个待处理消息的多个操作结果,当接受多个待处理消息时,待处理数据对应多个待处理消息的多个操作结果。
在审核***中,在几乎同一时刻会接收多个用户终端的待处理消息,因此本实施例以接收多个待处理消息为例进行说明。
用户终端中安装有客户端,该客户端可以是安装在用户终端的计算机应用程序即APP,也可以是web客户端,该web客户端指基于Web架构而开发的应用程序。用户终端中的客户端具有消息输入界面,用户在该界面内输入消息,其中,该消息可以是评论数据消息,即对文章、新闻或某些网络消息发表的评论数据,也可以是基于某些已发表的评论数据发表的评论数据,即嵌套评论数据,又或者是针对已发表评论数据的回复评论数据等等,该消息的类型可以是文本、图形、语音或视频等。这些消息的内容均可能会涉及违规信息,如果置之不理,不仅会污染良好的网络环境,而且会损害其他用户的利益。因此,需要获取消息的内容并且对所获取的内容审核,查找出违规的信息,如果审核通过,就将该消息发布,也就是说,在网络上的其他用户能够接收到该消息,而如果审核不通过,就拦截,从而避免违规消息散播。
用户在用户终端中输入的消息,在进入服务器后,作为待处理数据进行多道审核。服务器包括审核模块,常用的审核模块可以是正则模块、分类审核模块等,每种审核模块的审核策略不全相同,可根据具体应用场景选择使用哪种模块来进行审核。当然,审核模块的种类不限于此,还可以有更多种类的审核模块,各审核模块可单独使用,也可相互配合共同使用,审核模块数量越多,最终审核结果越准确。
在一种实施例中,服务器采用正则模块进行审核。正则模块用于查找待处理消息内是否包括指定内容,如果包括,则反馈“包含指定内容”的操作结果。其中,正则模块为根据正则表达式判断待审核的内容当中是否包括某些指定的内容,正则表达式是一种描述文本字符串或模式的方式,这样程序就可以将该模式与任意文本字符串相匹配,具体地,正则表达式是一种查找以及字符串替换操作,其常被用于检查文本中是否含有指定的特征词、找出文中匹配特征词的位置、从文本中提取信息等。依据此规则,可以预先定义一些指定内容,该指定内容可以属于一些政治敏感类、涉黄类、诈骗类或者广告类,则在判定该待审核内容包括上述指定内容的时候,确定该待审核内容是违规的内容,可以输出一个“包含指定内容”的操作结果,否则,可以输出一个“不包含指定内容”的操作结果。
在一种实施例中,服务器采用分类审核模块进行审核。分类审核模块用于确定待处理消息所属类别,如果类别为指定类别,则反馈“属于指定类别”的操作结果。分类审核模块采用的是机器学习文本分类算法。文本分类是指在给定分类体系下,根据文本内容自动确定文本类别的过程。预先定义一些指定类别,如政治敏感类、违背社会公德类等类别,如果待处理消息属于该指定类别,则给出一个“属于指定类别”的操作结果。否则,可以输出一个“不属于指定类别”的操作结果。
服务器内包括多个词典,每个词典为包含多个文本的缓存队列,比如,按照词库的类别划分,多个词库可以包括商品广告、涉嫌赌博、药物毒品、枪械刀具、政治敏感、色情广告、诈骗、非法网址以及低俗谩骂等,而每个词库中又包括多个词条。采用上述任一模块进行审核时,根据预设顺序将待处理消息与每个词库中的各词条进行匹配,输出多个操作结果。
操作结果指将待处理消息与每个词库中的各词条进行匹配后的判定,根据审核模块的种类不同,得到的操作结果可以是判定“包含指定内容”或“属于指定类别”等,操作结果可以用判断或者计分的方式来表征,也可以用其他方式。
在一种实施例中,用正则模块审核,采用判断的方式,将待处理消息依次与商品广告库、政治敏感库和非法网址库进行匹配对比,得到的操作结果依次为“不包含商品广告”,“包含政治敏感词汇”和“包含非法网址”,则可以依次用“否”、“是”、“是”来表明待处理消息中不包含商品广告,包含政治敏感词汇和非法网址,其中“否”代表不包含,“是”代表包含。
在一种实施例中,用正则模块审核,采用计分的方式,将待处理消息依次与商品广告库、政治敏感库和非法网址库进行匹配对比,得到的操作结果依次为“不包含商品广告”,“包含政治敏感词汇”和“包含非法网址”,则可以依次用“0”、“1”、“1”来表明待处理消息中不包含商品广告,包含政治敏感词汇和非法网址,其中“0”代表不包含,“1”代表包含。
在不同的应用场景中,对待处理消息的审核要求高低也不同。在严格的审核***中,待处理消息与词库中的任意一项发生匹配,即操作结果中有任意一项为“是”,则该待处理消息即判定为违规。但是在一些审核要求一般严格的场景中,如果待处理消息与特定的几个词库匹配,无论与其他词库的匹配度如何,则最终审核结果都判定为违规;反正,如果待处理消息与特定的几个词库不匹配,则与其他词库发生匹配,最终审核结果也判定不违规。由于待处理消息与词库进行匹配时是按预设顺序进行匹配,匹配后的操作结果也是按该预设顺序排列。
202:从多个缓存队列中确定待处理消息对应的目标缓存队列,并将待处理数据缓存至目标缓存队列。
如图3a所示,为本申请实施例提供的消息处理方法的第二种流程示意图,在步骤202中,从多个缓存队列中确定待处理消息对应的目标缓存队列的方式有多种,图3a示出了其中一种方式,202具体可包括:
2021:根据待处理消息的消息标识、以及缓存队列的队列数,确定消息标识对应的队列标识。
在几乎同一时刻,服务器中会接受多个用户的待处理消息,因此待处理数据中需要缓存的待处理消息有多个,而缓存队列的数量也是多个,因此需要确定每个待处理消息对应的缓存队列。
不同的用户发出的待处理消息,对应的消息标识不同,在本申请中,消息标识可以是用户ID,每个用户发出的每一条待处理消息,都有唯一的一个消息标识,相应地,在待处理消息进行多道审核后,产生的多个操作结果,均带有相同的消息标识,即归属于同一待处理消息的操作结果具有相同的消息标识。
如图4所示,当有t个用户发出了待处理消息时,则待处理消息的数量为t个,对t个待处理消息按照发出的先后顺序进行编号,编号分别为R0、R1、......、Rt-1,其中每个编号对应的待处理消息的消息标识为Dk,其中0≤k≤t-1,且k为整数。
对编号为R0的待处理消息进行多道审核,得到的操作结果依次编号为r01、r02、r03、......,则编号为R0的待处理消息的多个操作结果具有相同的消息标识D0。对编号为R1的待处理消息进行多道审核,得到的操作结果依次编号为r11、r12、r13、......,则编号为R1的待处理消息的多个操作结果具有相同的消息标识D1。依次类推,对所有的待处理消息进行审核,得到对应的操作结果,每个待处理消息的操作结果具有相同的消息标识。
在待处理消息进行审核并产生操作结果后,各操作结果需要缓存。在本申请中,将具有相同标识的操作结果,均缓存至一个缓存队列中,即保证同一个待处理消息的所有操作结果都缓存在一个缓存队列中。
对m个缓存队列进行编号,编号分别为q0、q1、......、qm-1,其中每个编号即为对应的缓存队列的队列标识qi,其中0≤i≤m-1,且i为整数,再根据待处理消息的数量与缓存队列的数量关系,确定消息标识Dk对应的队列标识qi。
在一种实施例中,待处理消息的数量与缓存队列的数量相等即t=m,按照预设顺序,依次确定每个待处理消息的操作结果对应的队列标识。以预设顺序为按缓存队列的编号从小到大的顺序为例,R0的待处理消息的操作结果,消息标识为D0,对应队列标识为q0,编号为R1的待处理消息的操作结果,消息标识为D1,对应队列标识为q1,依次类推,编号为Rt-1的待处理消息的操作结果,消息标识为Dt-1,对应队列标识为qm-1,至此,确定出每个消息标识Dk对应的队列标识qi。
预设顺序可以是按缓存队列的编号从小到大的顺序,也可以是按缓存队列的编号从大到小的顺序,还可以是其他按预设规则定义的顺序,可根据实际需要预设顺序。
在一种实施例中,待处理数据的数据数量大于缓存队列的数量即t>m。此时,先按照预设顺序,依次确定每个待处理消息的操作结果对应的队列标识。以预设顺序为按缓存队列的编号从小到大的顺序为例,确定规则如上述实施例所述,消息标识D0对应的队列标识为q0,消息标识D1对应的队列标识为q1,依次类推,消息标识Dm-1对应的队列标识为qm-1。此时,在0≤k≤m-1的范围内,每个消息标识Dk均对应一个队列标识qi,而在m-1<k≤t的范围内,每个消息标识Dk未确定队列标识qi。此时,该部分待处理消息再次按照预设顺序,按缓存队列的编号从小到大的顺序,依次确定其对应的队列标识,编号为Rm的待处理消息的操作结果,消息标识为Dm,对应队列标识为q0,编号为Rm+1的待处理消息的操作结果,消息标识为Dm+1,对应队列标识为q1,若在执行第二次确定规则结束后,仍有未确定队列标识的待处理消息,则再进行第三次或更多次的确定,依次类推,直至所有的待处理消息的消息标识均确定出对应的队列标识。
2022:将队列标识对应的缓存队列确定为目标缓存队列。
在确定消息标识对应的队列标识后,将队列标识对应的缓存队列确定为目标缓存队列,目标缓存队列指待处理消息的操作结果确定要缓存的缓存队列。
如图3b所示,为本申请实施例提供的消息处理方法的第三种流程示意图,在步骤202中,从多个缓存队列中确定待处理消息对应的目标缓存队列的方式有多种,图3b示出了另一种方式,与图3a对应的方法不同之处在于,202具体可包括:
2023:获取各缓存队列中待处理数据的缓存数量;
用户终端中产生的待处理消息不是都在同一时刻发送,因此对应不同的待处理消息,审核后产生的操作结果也有先后顺序,在某一时刻产生的待处理数据需要缓存时,上一时刻产生的待处理数据已经缓存至缓存队列中。由于已缓存至缓存队列中的待处理数据,在后续处理时的处理速度不同,会造成不同缓存队列中的缓存数量也不同,一部分缓存队列中的待处理数据较多,而另一部分缓存队列中的待处理数据较少。因此,可以获取各缓存队列中待处理数据的缓存数量,以合理选择目标缓存队列。
2024:根据缓存数量,从多个缓存队列中选择目标缓存队列。
已缓存有较多待处理数据的缓存队列,后续再缓存至该缓存队列中的待处理数据,处理时需要等待的时间较长,而已缓存待处理数据较少的缓存队列,后续再缓存至该缓存队列中的待处理数据,处理时需要等待的时间相应对较短,因此,为缩短后续待处理数据的处理时间,在获取各缓存队列中待处理数据的缓存数量后,按照缓存数量由少至多顺序对缓存队列排序,然后优先选择缓存数量较少的缓存队列作为目标缓存队列。
通过上述步骤202,从多个缓存队列中确定待处理消息对应的目标缓存队列,对应每个目标缓存队列,将具有相同消息标识的待处理数据缓存至目标缓存队列。需要说明的是,各待处理消息经审核后产生的操作结果排序与审核顺序一致,即待处理数据缓存至目标缓存队列时,同一待处理消息的多个操作结果,经第一道审核的操作结果首先进入目标缓存队列,经第二道审核的操作结果随后进入目标缓存队列,依次类推,经最后一道审核的操作结果最后进入目标缓存队列。
203:从多个处理进程中确定目标缓存队列对应的目标处理进程,将待处理数据传输至目标处理进程。
如图4所示,各缓存队列中的待处理数据在被处理进程处理前,为了保证同一缓存队列同一时刻只被一个处理进程处理,需要对当前目标缓存队列上锁,使得在当前目标缓存队列中的待处理数据在被目标处理进程处理的过程中,不会被其他的处理进程处理。
加锁操作可以采用内存锁进行处理,在采用内存锁对一个缓存队列加锁后,只有该缓存队列对应的目标处理进程才能对其进行处理,其他处理进程若要调用该缓存队列中的待处理数据,则会立刻获得一个调用出错的结果,而其他处理进程一旦接受到调用出错的结果,就不会一直等待内存锁的释放,可以执行其他操作,从而可以使其他处理进程无需浪费等待时间,有效地提高处理进程的处理效率。
需要说明的是,采用内存锁对缓存队列加锁时,是对缓存队列中的所有待处理数据进行加锁,具体的,内存锁可识别缓存队列中存在的所有待处理消息的消息标识,并对所有的消息标识进行加锁,从而锁定缓存队列中每个消息标识对应的所有操作结果数据。
比如,某个缓存队列中的待处理消息的数量为t个,按照进入缓存队列的先后顺序依次编号为R0、R1、......、Rt-1,其中每个编号对应的待处理消息的消息标识为Dk,其中0≤k≤t-1,且k为整数。对编号为R0的待处理消息进行多道审核,得到的操作结果依次编号为r01、r02、r03、......,则编号为R0的待处理消息的多个操作结果具有相同的消息标识D0。对编号为R1的待处理消息进行多道审核,得到的操作结果依次编号为r11、r12、r13、......,则编号为R1的待处理消息的多个操作结果具有相同的消息标识D1。依次类推,对所有的待处理消息进行审核,得到对应的操作结果,每个待处理消息的操作结果具有相同的消息标识。
采用内存锁对消息标识Dk锁定后,该缓存队列中的所有待处理消息的多个操作结果均被锁定,即编号为R0的待处理消息的所有操作结果均被锁定,编号为R1的待处理消息的所有操作结果均被锁定,依次类推,编号为Rt-1的待处理消息的所有操作结果也均被锁定。在目标缓存队列锁定后,再确定目标处理进程。
如图3c所示,为本申请实施例提供的消息处理方法的第四种流程示意图,在步骤203中,从多个处理进程中确定目标缓存队列对应的目标处理进程的方式有多种,图3c示出了其中一种方式,203具体可包括:
2031:根据缓存队列的队列标识、以及处理进程的进程数,确定队列标识对应的进程标识。
缓存有待处理数据的缓存队列有多个,处理进程也有多个,因此需要确定每个缓存队列对应的处理进程。
如图4所示,以m个缓存队列和n个处理进程为例,对m个缓存队列进行编号,编号分别为q0、q1、......、qm-1,其中每个编号即为对应的缓存队列的队列标识qi,0≤i≤m-1,且i为整数;对n个处理进程也进行编号,编号分别为p0、p1、......、pn-1,其中每个编号即为对应的处理进程的进程标识pj,0≤j≤n-1,且j为整数。
在一种实施例中,缓存队列的队列数与处理进程的进程数相等,即m=n,此时,进程标识为pj的处理进程,对应处理队列标识为qi的缓存队列,两者满足j=i,即处理进程的编号与缓存队列的编号对应相等。比如,缓存队列的队列标识为q0,对应的进程标识为p0,表明编号为p0的处理进程用于处理编号为q0的缓存队列中的待处理数据;缓存队列的队列标识为q1,对应的进程标识为p1,表明编号为p1的处理进程用于处理编号为q1的缓存队列中的待处理数据;依次类推,缓存队列的队列标识为qm-1,对应的进程标识为pn-1,表明编号为pn-1的处理进程用于处理编号为qm-1的缓存队列中的待处理数据。至此,每个队列标识均确定出对应的进程标识。
图5a为缓存队列与处理进程第一种匹配示意图,缓存队列的队列数m为6个,编号依次为q0、q1、q2、q3、q4、q5,处理进程的进程数n为6个,编号依次为p0、p1、p2、p3、p4、p5,由于缓存队列的队列数m与处理进程的进程数n相等,则缓存队列与处理进程的关系为一对一,队列标识q0对应的进程标识为p0,队列标识q1对应的进程标识为p1,队列标识q2对应的进程标识为p2,队列标识q3对应的进程标识为p3,队列标识q4对应的进程标识为p4,队列标识q5对应的进程标识为p5。
在一种实施例中,缓存队列的队列数大于处理进程的进程数,即m>n,此时,进程标识为pj的处理进程,对应处理队列标识为qi的缓存队列,两者满足i/n的余数等于j。比如,缓存队列的队列标识为q0,i的值为0,0除以n的余数等于0,则对应的进程标识为p0,表明编号为p0的处理进程用于处理编号为q0的缓存队列中的待处理数据;缓存队列的队列标识为q1,i的值为1,1除以n的余数等于1,对应的进程标识为p1,表明编号为p1的处理进程用于处理编号为q1的缓存队列中的待处理数据,依次类推,直至每个队列标识均确定出对应的进程标识。
图5b为缓存队列与处理进程第二种匹配示意图,缓存队列的队列数m为6个,编号依次为q0、q1、q2、q3、q4、q5,处理进程的进程数n为3个,编号依次为p0、p1、p2,由于缓存队列的队列数m大于处理进程的进程数n,则缓存队列与处理进程的关系为多对一。根据公式计算得到i/n的余数,缓存队列的队列标识为q0,i的值为0,0除以3的余数等于0,则对应的进程标识为p0,缓存队列的队列标识为q1,i的值为1,1除以3的余数等于1,则对应的进程标识为p1,缓存队列的队列标识为q2,i的值为2,2除以3的余数等于2,则对应的进程标识为p2,缓存队列的队列标识为q3,i的值为3,3除以3的余数等于0,则对应的进程标识为p0,缓存队列的队列标识为q4,i的值为4,4除以3的余数等于1,则对应的进程标识为p1,缓存队列的队列标识为q5,i的值为5,5除以3的余数等于3,则对应的进程标识为p2。在本实施例中,每个队列标识对应唯一的一个进程标识,而每个进程标识对应两个不同的队列标识。
2032:将进程标识对应的处理进程确定为目标处理进程。
在确定队列标识对应的进程标识后,将进程标识对应的处理进程确定为目标处理进程,目标处理进程指确定要处理目标缓存队列中待处理数据的处理进程。
如图3d所示,为本申请实施例提供的消息处理方法的第五种流程示意图,在步骤203中,从多个缓存队列中确定待处理消息对应的目标缓存队列的方式有多种,图3d示出了另一种方式,与图3c对应的方法不同之处在于,203具体可包括:
2033:获取各处理进程中待处理队列的处理数量。
在处理缓存队列中的待处理数据时,多个处理进程是同时进行处理的,但是各处理进程的处理速度存在差异。当每个处理进程需要处理多个缓存队列时,会存在一部分处理进程的处理速度较快,即该部分处理进程中待处理队列的处理数量较少,而另一部分处理进程中的处理速度较慢,即该部分处理进程中待处理队列的处理数量较多。因此,可以获取各处理进程中待处理缓存队列的处理数量,以合理选择目标缓存队列。
2034:根据处理数量,从多个处理进程中选择目标处理进程。
待处理缓存队列数量较多的处理进程,后续再处理其他缓存队列时,其他缓存队列等待的时间较长,而待处理缓存队列数量较少的处理进程,后续再处理其他缓存队列时,其他缓存队列等待的时间相应较短,因此,为缩短后续各缓存队列中待处理数据的处理时间,在获取各处理进程中待处理队列的处理数量后,案子处理数量由少至多顺序对各处理进程排序,然后优先选择处理数量较少的处理进程作为目标处理进程。
通过上述步骤203,从多个处理进程中确定目标缓存队列对应的目标处理进程,对应每个目标处理进程,从目标缓存队列中按照先进先出的顺序依次处理待处理数据。
在目标缓存队列和对应的目标处理进程都确定后,目标处理进程对目标缓存队列中的数据进行处理,同一目标缓存队列中先进入的待处理数据优先被传输至目标处理进程中。由于待处理消息经审核后产生的操作结果排序与审核顺序一致,而缓存队列中数据遵循先进先出的原则,因此目标缓存队列中的每条待处理数据的操作结果,在传输至目标处理进程时,也是按照审核顺序排列,因此传输后能保持各操作结果的顺序不变。
204:根据目标处理进程的处理结果,得到待处理消息的审核结果。
目标缓存队列中的待处理数据传输至目标处理进程后,目标处理进程对待处理消息的操作结果,也按照审核顺序依次处理,因此最终得到的处理结果也与审核的顺序保持一致,处理结果指待处理消息的操作结果集。
比如,某个待处理消息在审核时,以包含有政治敏感词汇为违规标准,将待处理消息依次与商品广告库、政治敏感库和非法网址库进行匹配对比,得到的操作结果依次为“否”、“是”、“是”,经过处理进程的处理后,得到的处理结果为待处理消息中不包含商品广告,包含政治敏感词汇和非法网址。
相应地,将待处理消息依次与商品广告库、政治敏感库和非法网址库进行匹配对比,得到的操作结果依次为“是”、“否”、“是”,经过处理进程的处理后,得到的处理结果为待处理消息中包含商品广告,不包含政治敏感词汇,包括非法网址。
如图4所示,目标处理进程在完成对目标缓存队列的处理后,得到处理结果,然后对目标缓存队列解锁,进行锁资源释放,然后继续循环处理下一条待处理数据。
在得到处理结果后,确定最终的审核结果,审核结果是指对待处理消息违规与否的判定。
当处理结果为不包含设定的敏感词汇时,说明待处理消息是安全的,审核结果为不违规,因此可以该待处理消息发布,发布后发送该待处理消息的用户和其他用户均可以接受到该待处理消息。当处理结果为包含设定的敏感词汇时,说明待处理消息是不安全的,审核结果为违规,此时如果发布会污染良好的网络环境而且会损害用户的利益,因此需要将该处理消息拦截,从而避免违规消息散播。
由上可知,本申请实施例的消息处理方法,通过接收待处理数据,待处理数据包括待处理消息的多个操作结果,然后从多个缓存队列中确定待处理消息对应的目标缓存队列,并将待处理数据缓存至目标缓存队列,接着从多个处理进程中确定所述目标缓存队列对应的目标处理进程,将所述待处理数据传输至所述目标处理进程,最后根据所述目标处理进程的处理结果,得到所述待处理消息的审核结果,通过多个处理进程同步处理多个待处理数据,保证了处理速度,并且保证了同一待处理消息的多个操作结果严格按照审核顺序被处理,避免了处理顺序与审核顺序不一致造成的审核结果错误,进而提高了审核结果的准确性。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
在一种实施例中,本申请提供的计算机设备作为可以作为区块链***中的一个节点,在得到待处理消息的审核结果后,对审核结果进行验证,在验证通过后,作为一个新的区块,存储到区块链中,以保证这些审核结果不会被篡改。
如图3e所示,为本申请实施例提供的消息处理方法的第六种流程示意图,待处理消息产生的多个操作结果,作为待处理数据需要缓存在缓存队列中,因此数据处理***在待处理数据缓存之前,还需要生成多个缓存队列,再从中确定每个待处理消息的操作结果所需要缓存的目标缓存队列。因此,在接收待处理数据之前,该消息处理方法还包括:
301:获取缓存队列的队列数。
在一种实施例中,步骤301具体包括:
获取待处理数据的数据数量。
待处理数据的数据数量与待处理消息的消息数量相关,当待处理消息的数量较多时,待处理消息的操作结果也较多,因此待处理数据的数据数量也较多。相应地,为保证所有待处理数据均可以缓存在缓存队列中,需要生成的缓存队列的数量也较多。
在生成缓存队列时,先获取待处理数据的数据数量。根据待处理数据的类型不同,待处理数据的数据数量通常也不同。在本申请中,以待处理消息为评论为例,通常在文章、视频、音频等网络消息发出后,用户在网络消息下进行评论产生待处理消息,因此用户终端的数量、网络消息的发出时间、以及网络消息的关注度等,均会影响待处理数据的数据数量。
在一种实施例中,待处理数据的数据数量与用户终端的数量相关。用户终端中安装有客户端,该客户端可以是安装在用户终端的计算机应用程序即APP,也可以是web客户端,该web客户端指基于Web架构而开发的应用程序。当用户在客户端通过帐号登录后,通过该帐号发出的所有消息均作为待处理消息进行审核。用户终端的数量越多,则安装有客户端的用户终端的比例越大,接收到文章、视频、音频等网络消息的用户越多,产生的评论也越多,待处理数据的数据数量也越多。为保证足够的缓存空间,需根据用户终端的数量,分析计算出待处理数据的数据数量,为待处理数据提供充足的缓存空间。
在一种实施例中,待处理数据的数据数量与网络消息的发出时间相关。比如,在网络消息刚发出后的一个时间段内,浏览的人数较多,产生的评论也较多,待处理数据的数据数量也较多,当该时间段过后,大部分用户已经浏览过,则后续浏览的人数较少,产生的评论也会相应减少,待处理数据的数据数量也较少。再比如,网络消息发出的时间为工作日的工作时间,用户不便浏览,则网络消息刚发出后不会有较大的浏览量,产生的评论较少,而到了非工作时间如下班后,用户的浏览量将进入高峰期,产生的评论也相应增多,待处理数据的数据数量也较多。因此,网络消息的发出时间会影响待处理数据的数据数量,在特定的时间段,待处理数据的数据数量较多,需要更多的缓存空间,在其他时间段,待处理数据的数据数量较少,需要的缓存空间较小。为保证足够的缓存空间,且又不造成缓存空间的浪费,需根据网络消息的发出时间,分析计算出特定的时间段内和其他时间段内的待处理数据的数据数量,根据不同时间段内待处理数据的数据数量的不同,合理规划缓存空间。
在一种实施例中,待处理数据的数据数量与网络消息的关注度相关。通常的网络消息,在一段时间内的关注度是趋于稳定的,相应产生的评论数量也在一定的范围内,此时待处理数据的数据数量也较为稳定,需要的缓存空间经分析计算,可以满足缓存的需求。而一些特殊的网络消息,比如社会热点事件、热点人物等,在网络消息发出后,影响力较大,浏览人数将会迅速增多,产生的评论比例也会升高,待处理数据的数据数量随之增大。如果此时的缓存空间还按照常规网络消息的对应大小来设置,则会造成缓存空间不足。因此,在发出特殊的网络消息前,预测到该网络消息的关注度较大时,需提前增大缓存空间。
影响待处理数据的数据数量的因素不限于此,还有其他各种因素也会影响待处理数据的数据数量,在综合考虑各种因素的前提下,提前分析计算出所需的缓存空间,可以保证待处理数据的正常缓存。此外,在***待处理数据的数据数量的基础上,还需要对实际的待处理数据进行实时监测,随时调整缓存空间。
根据数据数量,确定队列数。
获取待处理数据的数据数量后,再根据数据数量,确定队列数。每个缓存队列可以缓存的数据数量是一定的,当待处理数据的数据数量不同时,缓存队列的队列数也是不同的。因此,在获取待处理数据的数据数量后,根据数据数量的多少、以及每个缓存队列的最大缓存量,计算得到对应的队列数。
生成缓存队列的方式不限于此,在另一种实施例中,步骤301具体包括:
获取设备的处理能力数据。
不同的设备对待处理数据的处理能力不同,设备的处理能力越强,可提供给待处理数据的缓存空间越大,反之则越小。在设备允许的情况下,生成的缓存队列越多,待处理数据的缓存空间越大,因此可以事先获取设备的处理能力数据。
根据处理能力数据,确定队列数。
每个缓存队列可以缓存的数据数量是一定的,当待处理数据的数据数量不同时,缓存队列的队列数也是不同的。在获取设备的处理能力数据后,根据处理能力数据的大小、以及每个缓存队列的最大缓存量,计算得到对应的队列数。
302:生成队列数对应数量的缓存队列。
在通过上述步骤获取缓存队列的队列数后,生成队列数对应数量的缓存队列。
请继续参阅图3e,缓存队列中的待处理数据,需要经过处理进程的处理,才能得到最终的审核结果。数据处理***在待处理数据处理之前,还需要生成多个处理进程,再从中确定每个目标缓存队列所对应的目标处理进程。因此,在接收待处理数据之前,该消息处理方法还包括:
401:获取处理进程的进程数。
在一种实施例中,步骤401具体包括:
获取缓存队列的队列数。
缓存队列的队列数与待处理数据的数据数量相关,当待处理数据的数据数量较多时,对应需要的缓存队列的队列数也越多,为保证所有的缓存队列中的待处理数据均可以被迅速处理,需要生成的处理进程的数量也较多,因此,需要先获取缓存队列的队列数,提前分析计算出所需的处理进程,可以保证缓存队列中各待处理数据的正常处理。
根据队列数,确定进程数。
获取缓存队列的队列数后,再根据队列数,确定进程数。每个处理进程处理的能力是一定的,当缓存队列的队列数不同时,需要的处理进程的进程数也是不同的。因此,在获取缓存队列的队列数后,根据队列数的多少、以及每个处理进程的处理能力,计算得到对应的进程数。
由于每个处理进程都可以处理至少一个缓存队列,最终确定的处理进程的进程数小于或等于缓存队列的队列数。
生成处理进程的方式不限于此,在另一种实施例中,步骤401具体又包括:
获取设备的进程生成能力数据。
不同的设备可以生成处理进程的能力不同,设备生成的处理进程越多,处理速度越快。在***支持的情况下,生成的处理进程越多,处理的速度越快,因此可以实现获取设备的进程生成能力数据。
根据进程生成能力数据,确定进程数。
每个处理进程可以处理的缓存队列的数量是一定的,当缓存队列的队列数不同时,需要的处理进程数也不同。在获取设备的进程生成能力数据后,根据进程生成能力的大小、以及每个处理进程的最大处理量,计算得到对应的进程数。
同样地,由于每个处理进程都可以处理至少一个缓存队列,最终确定的处理进程的进程数小于或等于缓存队列的队列数。
402:生成进程数对应数量的处理进程。
在通过上述步骤获取处理进程的进程数后,生成进程数对应数量的处理进程。
在通过上述步骤生成缓存队列和处理进程后,再对待处理数据进行处理,得到审核结果。
图6是本申请实施例提供的消息处理方法的第七种流程图,请参阅图6,该消息处理方法包括以下步骤:
601:第一用户终端向服务器发表评论。
第一用户终端中的客户端具有消息输入界面,用户在该界面内输入评论,该评论可以是对文章、新闻或某些网络消息发表的评论数据,也可以是基于某些已发表的评论数据发表的评论数据,即嵌套评论数据,又或者是针对已发表评论数据的回复评论数据等等,评论的类型可以是文本、图形、语音或视频等。
602:服务器审核评论
在服务器中,评论需要经过多道工序的审核,每道审核产生一个操作结果,在依次经过所有的审核后,得到和审核工序数量相等的操作结果,形成待处理数据。
服务器接收待处理数据后,从多个缓存队列中确定评论对应的目标缓存队列,并将评论缓存至目标缓存队列。
然后,从多个处理进程中确定目标缓存队列对应的目标处理进程,将评论传输至目标处理进程。
最后,根据目标处理进程的处理结果,得到评论的审核结果。审核结果为确定该评论是否可以发布。
603:服务器向第一用户终端返回审核结果。
在服务器对评论进行审核完成后,根据审核结果确定该评论是否可以发布,当审核通过时,向第一用户终端返回审核结果,在第一用户终端中可以显示该评论,当审核不通过时,向第一用户终端返回审核结果,该评论在第一用户终端中不显示。
604:服务器向区块链存储审核结果。
服务器在得到评论的审核结果后,对审核结果进行验证,在验证通过后,作为一个新的区块,存储到区块链中,以保证这些审核结果不会被篡改。
605:第二用户终端向服务器发送阅读请求。
第二用户终端发送的阅读请求,可以是按分类请求,如“体育类”、“科学类”等,也可以是按关键词请求,如“某某比赛”、“某某食物”等。
606:服务器确定文章
服务器根据第二用户终端发送的阅读请求,确定与阅读请求的分类或关键字匹配的文章。阅读请求限定的内容越多,确定的文章范围越小,数量越少,确定更精确。
607:服务器从区块链中获取文章及文章对应评论。
文章以及文章评论的审核结果均存储在区块链中,在服务器确定文章后,从区块链中获取文章以及文章对应评论。
608:服务器向第二用户终端发送文章及文章对应评论。
本实施例以文章评论为例,说明了本申请可以确定消息的操作结果按审核顺序进行,提高审核结果的准确性。
在上述实施例所述方法的基础上,本实施例将从消息处理装置的角度进一步进行描述,请参阅图7a,图7a具体描述了本申请实施例提供的消息处理装置,其可以包括:
接收模块110,用于接收待处理数据,待处理数据包括待处理消息的多个操作结果;
缓存模块120,用于从多个缓存队列中确定待处理消息对应的目标缓存队列,并将待处理数据缓存至目标缓存队列;
传输模块130,用于从多个处理进程中确定目标缓存队列对应的目标处理进程,将待处理数据传输至目标处理进程;
处理模块140,用于根据目标处理进程的处理结果,得到待处理消息的审核结果。
在一种实施例中,当需要从多个缓存队列中确定待处理消息对应的目标缓存队列时,上述缓存模块120具体可以包括:
队列标识确定子模块,用于根据待处理消息的消息标识、以及缓存队列的队列数,确定消息标识对应的队列标识。
第一目标缓存队列确定子模块,用于将队列标识对应的缓存队列确定为目标缓存队列。
在另一种实施例中,当需要从多个缓存队列中确定待处理消息对应的目标缓存队列时,上述缓存模块120具体又可以包括:
缓存数量获取子模块,用于获取各缓存队列中待处理数据的缓存数量。
第二目标缓存队列确定子模块,用于根据缓存数量,从多个缓存队列中选择目标缓存队列。
在一种实施例中,当需要从多个处理进程中确定目标缓存队列对应的目标处理进程时,上述传输模块130具体可以包括:
进程标识确定子模块,用于根据缓存队列的队列标识、以及处理进程的进程数,确定队列标识对应的进程标识。
第一目标处理进程确定子模块,用于将进程标识对应的处理进程确定为目标处理进程。
在另一种实施例中,当需要从多个处理进程中确定目标缓存队列对应的目标处理进程时,上述传输模块130具体又可以包括:
处理能力确定子模块,用于获取各处理进程中待处理队列的处理数量。
第二目标处理进程确定子模块,用于根据处理数量,从多个处理进程中选择目标处理进程。
请参见图7b,在一种实施例中,在接收模块110缓存待处理数据之前,该消息处理装置还可以包括:
队列数获取模块150,用于获取缓存队列的队列数。
队列生成模块160,用于生成队列数对应数量的缓存队列。
在一种实施例中,队列数获取模块150包括:
缓存数量获取子模块,用于获取待处理数据的数据数量;
第一队列数确定子模块,用于根据数据数量,确定队列数。
在另一种实施例中,队列数获取模块150包括:
处理能力确定子模块,用于获取设备的处理能力数据;
第二队列数确定子模块,用于根据处理能力数据,确定队列数。
继续参见图7b,在一种实施例中,在接收模块110缓存待处理数据之前,该消息处理装置还可以包括:
进程数获取模块170,用于获取处理进程的进程数。
进程生成模块180,用于生成进程数对应数量的处理进程。
在一种实施例中,进程数获取模块170包括:
队列数获取子模块,用于获取缓存队列的队列数;
第一进程数确定子模块,用于根据队列数,确定进程数。
在另一种实施例中,进程数获取模块170包括:
进程生成能力确定子模块,用于获取设备的进程生成能力数据;
第二进程数确定子模块,用于根据进程生成能力数据,确定进程数。
区别于现有技术,本申请提供的消息处理装置,通过接收待处理数据,待处理数据包括待处理消息的多个操作结果,然后从多个缓存队列中确定待处理消息对应的目标缓存队列,并将待处理数据缓存至目标缓存队列,接着从多个处理进程中确定所述目标缓存队列对应的目标处理进程,将所述待处理数据传输至所述目标处理进程,最后根据所述目标处理进程的处理结果,得到所述待处理消息的审核结果,通过多个处理进程同步处理多个待处理数据,保证了处理速度,并且保证了同一待处理消息的多个操作结果严格按照审核顺序被处理,避免了处理顺序与审核顺序不一致造成的审核结果错误,进而提高了审核结果的准确性。
请参阅图8,相应的,本申请实施例还提供一种计算机设备,如图8所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器801、一个或一个以上计算机可读存储介质的存储器802、电源803和输入子模块804等部件。本领域技术人员可以理解,图8中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器801是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器802内的软件程序和/或模块,以及调用存储在存储器802内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器801可包括一个或多个处理核心;优选的,处理器801可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器801中。
存储器802可用于存储软件程序以及模块,处理器801通过运行存储在存储器802的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器802可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器802还可以包括存储器控制器,以提供处理器801对存储器802的访问。
计算机设备还包括给各个部件供电的电源803,优选的,电源803可以通过电源管理***与处理器801逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源803还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入子模块804,该输入子模块804可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示子模块等,在此不再赘述。具体在本实施例中,计算机设备中的处理器801会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器802中,并由处理器801来运行存储在存储器802中的应用程序,从而实现各种功能,如下:
接收待处理数据,待处理数据包括待处理消息的多个操作结果;
从多个缓存队列中确定待处理消息对应的目标缓存队列,并将待处理数据缓存至目标缓存队列;
从多个处理进程中确定目标缓存队列对应的目标处理进程,将待处理数据传输至目标处理进程;
根据目标处理进程的处理结果,得到待处理消息的审核结果。
在一种实施例中,实现功能:
获取缓存队列的队列数;
生成队列数对应数量的缓存队列。
在一种实施例中,实现功能:
获取待处理数据的数据数量;
根据数据数量,确定队列数。
在一种实施例中,实现功能:
获取设备的处理能力数据;
根据处理能力数据,确定队列数。
在一种实施例中,实现功能:
根据待处理消息的消息标识、以及缓存队列的队列数,确定消息标识对应的队列标识;
将队列标识对应的缓存队列确定为目标缓存队列。
在一种实施例中,实现功能:
获取各缓存队列中待处理数据的缓存数量;
根据缓存数量,从多个缓存队列中选择目标缓存队列。
在一种实施例中,实现功能:
根据缓存队列的队列标识、以及处理进程的进程数,确定队列标识对应的进程标识;
将进程标识对应的处理进程确定为目标处理进程。
在一种实施例中,实现功能:
获取各处理进程中待处理队列的处理数量;
根据处理数量,从多个处理进程中选择目标处理进程。
在一种实施例中,实现功能:
将审核结果存到区块链中。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对消息处理方法的详细描述,此处不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种方法中的步骤。例如,该指令可以执行如下步骤:
接收待处理数据,待处理数据包括待处理消息的多个操作结果;
从多个缓存队列中确定待处理消息对应的目标缓存队列,并将待处理数据缓存至目标缓存队列;
从多个处理进程中确定目标缓存队列对应的目标处理进程,将待处理数据传输至目标处理进程;
根据目标处理进程的处理结果,得到待处理消息的审核结果。
在一种实施例中,实现功能:
获取缓存队列的队列数;
生成队列数对应数量的缓存队列。
在一种实施例中,实现功能:
获取待处理数据的数据数量;
根据数据数量,确定队列数。
在一种实施例中,实现功能:
获取设备的处理能力数据;
根据处理能力数据,确定队列数。
在一种实施例中,实现功能:
根据待处理消息的消息标识、以及缓存队列的队列数,确定消息标识对应的队列标识;
将队列标识对应的缓存队列确定为目标缓存队列。
在一种实施例中,实现功能:
获取各缓存队列中待处理数据的缓存数量;
根据缓存数量,从多个缓存队列中选择目标缓存队列。
在一种实施例中,实现功能:
根据缓存队列的队列标识、以及处理进程的进程数,确定队列标识对应的进程标识;
将进程标识对应的处理进程确定为目标处理进程。
在一种实施例中,实现功能:
获取各处理进程中待处理队列的处理数量;
根据处理数量,从多个处理进程中选择目标处理进程。
在一种实施例中,实现功能:
将审核结果存到区块链中。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种方法中的步骤,因此,可以实现本申请实施例所提供的任一种方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种消息处理方法及装置、计算机设备及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (12)
1.一种消息处理方法,其特征在于,包括:
接收待处理数据,所述待处理数据包括待处理消息的多个操作结果,所述待处理消息来源于用户终端,所述待处理消息经过多道工序的审核,每道所述审核产生一个所述操作结果,在依次经过所有的审核后,得到和审核工序数量相等的操作结果,按照审核顺序排列形成所述待处理数据;
从多个缓存队列中确定所述待处理消息的消息标识对应的目标缓存队列,并将所述待处理数据缓存至所述目标缓存队列,以按照所述审核顺序将所述多个操作结果缓存至所述目标缓存队列,其中,每个用户终端发送的每一条待处理消息,都有唯一的一个消息标识;
从多个处理进程中确定所述目标缓存队列对应的目标处理进程,将所述待处理数据传输至所述目标处理进程,以使得所述目标处理进程按照所述审核顺序依次处理所述多个操作结果;
根据所述目标处理进程的处理结果,得到所述待处理消息的审核结果。
2.如权利要求1所述的消息处理方法,其特征在于,在接收待处理数据之前,还包括:
获取缓存队列的队列数;
生成队列数对应数量的缓存队列。
3.如权利要求2所述的消息处理方法,其特征在于,所述获取缓存队列的队列数步骤包括:
获取待处理数据的数据数量;
根据所述数据数量,确定所述队列数。
4.如权利要求2所述的消息处理方法,其特征在于,所述获取缓存队列的队列数步骤包括:
获取设备的处理能力数据;
根据所述处理能力数据,确定所述队列数。
5.如权利要求1所述的消息处理方法,其特征在于,所述从多个缓存队列中确定所述待处理消息的消息标识对应的目标缓存队列的步骤,包括:
根据所述待处理消息的消息标识、以及缓存队列的队列数,确定所述消息标识对应的队列标识;
将所述队列标识对应的缓存队列确定为所述目标缓存队列。
6.如权利要求1所述的消息处理方法,其特征在于,所述方法还包括:
获取各缓存队列中待处理数据的缓存数量;
根据所述缓存数量,从所述多个缓存队列中选择目标缓存队列。
7.如权利要求1所述的消息处理方法,其特征在于,所述从多个处理进程中确定所述目标缓存队列对应的目标处理进程的步骤,包括:
根据所述缓存队列的队列标识、以及处理进程的进程数,确定所述队列标识对应的进程标识;
将所述进程标识对应的处理进程确定为所述目标处理进程。
8.如权利要求1所述的消息处理方法,其特征在于,所述从多个处理进程中确定所述目标缓存队列对应的目标处理进程的步骤,包括:
获取各处理进程中待处理队列的处理数量;
根据所述处理数量,从所述多个处理进程中选择目标处理进程。
9.如权利要求1所述的消息处理方法,其特征在于,所述根据所述目标处理进程的处理结果,得到所述待处理消息的审核结果的步骤,包括:将所述审核结果存到区块链中。
10.一种消息处理装置,其特征在于,包括:
接收模块,用于接收待处理数据,所述待处理数据包括待处理消息的多个操作结果,所述待处理消息来源于用户终端,所述待处理消息经过多道工序的审核,每道所述审核产生一个所述操作结果,在依次经过所有的审核后,得到和审核工序数量相等的操作结果,按照审核顺序排列形成所述待处理数据;
缓存模块,用于从多个缓存队列中确定所述待处理消息的消息标识对应的目标缓存队列,并将所述待处理数据缓存至所述目标缓存队列,以将按照所述审核顺序排列的所述多个操作结果缓存至所述目标缓存队列,其中,每个用户终端发送的每一条待处理消息,都有唯一的一个消息标识;
传输模块,用于从多个处理进程中确定所述目标缓存队列对应的目标处理进程,将所述待处理数据传输至所述目标处理进程,以使得所述目标处理进程按照所述审核顺序依次处理所述多个操作结果;
处理模块,用于根据所述目标处理进程的处理结果,得到所述待处理消息的审核结果。
11.一种计算机设备,其特征在于,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行程序时实现权利要求1-9任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,其中,计算机程序被处理器执行时实现权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910988184.XA CN110851288B (zh) | 2019-10-17 | 2019-10-17 | 消息处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910988184.XA CN110851288B (zh) | 2019-10-17 | 2019-10-17 | 消息处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110851288A CN110851288A (zh) | 2020-02-28 |
CN110851288B true CN110851288B (zh) | 2021-08-03 |
Family
ID=69596255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910988184.XA Active CN110851288B (zh) | 2019-10-17 | 2019-10-17 | 消息处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110851288B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111491015B (zh) * | 2020-03-31 | 2022-11-11 | 北京金山云网络技术有限公司 | 预热任务处理方法及***、代理服务器、服务中心 |
CN113852589B (zh) * | 2020-06-28 | 2023-10-24 | 华为技术有限公司 | 用于数据传输和数据接收的方法、设备和介质 |
CN111831953B (zh) * | 2020-07-20 | 2024-03-15 | 汉海信息技术(上海)有限公司 | 数据处理方法、装置、设备及存储介质 |
CN111880955A (zh) * | 2020-08-04 | 2020-11-03 | 北京立通智联科技有限公司 | 对物联网设备的消息处理方法、装置、终端及介质 |
CN112596865A (zh) * | 2020-12-22 | 2021-04-02 | 航天信息股份有限公司企业服务分公司 | 基于工作流事务推送待办消息的*** |
CN112749027A (zh) * | 2020-12-31 | 2021-05-04 | 深圳市迅雷网络技术有限公司 | 渲染进程间的通信方法、电子设备以及可读存储装置 |
CN114780190B (zh) * | 2022-04-13 | 2023-12-22 | 脸萌有限公司 | 消息处理方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729442A (zh) * | 2013-12-30 | 2014-04-16 | 华为技术有限公司 | 记录事务日志的方法和数据库引擎 |
CN104426926A (zh) * | 2013-08-21 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 定时发布数据的处理方法及装置 |
CN104821924A (zh) * | 2014-01-30 | 2015-08-05 | 西门子公司 | 一种网络数据包处理方法、装置和网络处理设备 |
CN108429777A (zh) * | 2017-02-15 | 2018-08-21 | 腾讯科技(北京)有限公司 | 一种基于缓存的数据更新方法及服务器 |
CN108459917A (zh) * | 2018-03-15 | 2018-08-28 | 欧普照明股份有限公司 | 一种消息分配部件、消息处理***以及消息分配方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5611456A (en) * | 1995-01-24 | 1997-03-18 | Algonquin Industries Inc. | Apparatus for dispensing tickets, cards and the like |
US20040205770A1 (en) * | 2003-02-11 | 2004-10-14 | International Business Machines Corporation | Duplicate message elimination system for a message broker |
US8286189B2 (en) * | 2007-09-27 | 2012-10-09 | American Express Travel Related Services Company, Inc. | System and method for automatically generating computer code for message flows |
US11650956B2 (en) * | 2015-05-11 | 2023-05-16 | Vmware, Inc. | Prioritizing backup of endpoint devices in enterprise network environments |
CN106209594A (zh) * | 2016-07-20 | 2016-12-07 | 北京北信源软件股份有限公司 | 一种终端审计im即时消息的方法 |
CN109683984B (zh) * | 2018-12-14 | 2022-01-28 | 拉扎斯网络科技(上海)有限公司 | 数据热加载方法、装置、电子设备及计算机可读存储介质 |
-
2019
- 2019-10-17 CN CN201910988184.XA patent/CN110851288B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104426926A (zh) * | 2013-08-21 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 定时发布数据的处理方法及装置 |
CN103729442A (zh) * | 2013-12-30 | 2014-04-16 | 华为技术有限公司 | 记录事务日志的方法和数据库引擎 |
CN104821924A (zh) * | 2014-01-30 | 2015-08-05 | 西门子公司 | 一种网络数据包处理方法、装置和网络处理设备 |
CN108429777A (zh) * | 2017-02-15 | 2018-08-21 | 腾讯科技(北京)有限公司 | 一种基于缓存的数据更新方法及服务器 |
CN108459917A (zh) * | 2018-03-15 | 2018-08-28 | 欧普照明股份有限公司 | 一种消息分配部件、消息处理***以及消息分配方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110851288A (zh) | 2020-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110851288B (zh) | 消息处理方法及装置 | |
US11956272B2 (en) | Identifying legitimate websites to remove false positives from domain discovery analysis | |
US10740411B2 (en) | Determining repeat website users via browser uniqueness tracking | |
US9064212B2 (en) | Automatic event categorization for event ticket network systems | |
CN110995781B (zh) | 点赞信息处理方法、装置及*** | |
US20190347660A1 (en) | System and method for protection of confidential information | |
CN108111554B (zh) | 一种访问队列的控制方法及装置 | |
CN112131002B (zh) | 数据管理方法及装置 | |
CN107798037A (zh) | 用户特征数据的获取方法及服务器 | |
WO2022012136A1 (zh) | 区块链***、生物制品监控方法及装置 | |
CN112446022A (zh) | 数据权限控制方法、装置、电子设备及存储介质 | |
CN110417751B (zh) | 一种网络安全预警方法、装置和存储介质 | |
CN113612766A (zh) | 数据治理装置、方法、计算机设备及存储介质 | |
CN111339540A (zh) | 一种计算机会计数据防盗装置及其控制方法 | |
CN115204889A (zh) | 文本处理方法、装置、计算机设备及存储介质 | |
US20210144451A1 (en) | Control method, content management system, recording medium, and data structure | |
KR20190022430A (ko) | 소셜 정보 기반의 리스크 이벤트의 식별 시스템, 방법, 전자장치 및 저장매체 | |
CN110162755A (zh) | 一种产品推广脚本的管理方法及设备 | |
CN110677494B (zh) | 访问响应方法和装置 | |
CN116451191A (zh) | 信息审核方法、装置、电子设备和计算机可读存储介质 | |
CN113609531A (zh) | 基于区块链的信息交互方法、装置、设备、介质和产品 | |
CN108886631A (zh) | 电子数据检查***、电子数据检查方法和存储有电子数据检查用程序的存储介质 | |
US9996691B1 (en) | Using signals from developer clusters | |
CN116739611B (zh) | 客户信息跟踪管理方法、装置、设备及介质 | |
Simmhan et al. | Benchmarking fast-data platforms for the Aadhaar biometric database |
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 |