CN113296985B - 一种消息处理方法及装置 - Google Patents

一种消息处理方法及装置 Download PDF

Info

Publication number
CN113296985B
CN113296985B CN202110667472.2A CN202110667472A CN113296985B CN 113296985 B CN113296985 B CN 113296985B CN 202110667472 A CN202110667472 A CN 202110667472A CN 113296985 B CN113296985 B CN 113296985B
Authority
CN
China
Prior art keywords
processed
data
message
queue
identifier
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
Application number
CN202110667472.2A
Other languages
English (en)
Other versions
CN113296985A (zh
Inventor
王博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Youzhuju Network Technology Co Ltd
Original Assignee
Beijing Youzhuju Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Youzhuju Network Technology Co Ltd filed Critical Beijing Youzhuju Network Technology Co Ltd
Priority to CN202110667472.2A priority Critical patent/CN113296985B/zh
Publication of CN113296985A publication Critical patent/CN113296985A/zh
Application granted granted Critical
Publication of CN113296985B publication Critical patent/CN113296985B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开提供了一种消息处理方法及装置,本公开实施例提供的方法通过待处理数据的消息标识,将需要处理的消息排序并存放至队列中,再根据待处理数据中的基准消息标识和消息标识,对消息队列中的待处理数据进行连续性检测,并将通过连续性检测的待处理消息按照队列顺序依次展示,使待处理消息的顺序与发送时的顺序一致,便于用户理解消息的真实语义。

Description

一种消息处理方法及装置
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种消息处理方法及装置。
背景技术
随着互联网的快速发展,实时消息通讯得到了广泛的应用,比如,社交软件中,用户可以通过客户端和服务器实时向其他用户发送消息,在线教育场景中,老师与学生也可以通过类似的方式传递消息。
然而,受到网络流畅度的影响,服务器发送不同消息所需要的时间通常不同,发送的消息到达客户端的先后顺序可能不同,客户端却仍然按照接收消息的顺序展示这些消息,在一些场景下,消息先后顺序的改变,可能导致其语义与正常情况下的语义有较大不同,对于理解能力较弱的用户难以理解消息的真实含义,不利于用户真实语义的传达。
发明内容
本公开实施例至少提供一种消息处理方法及装置。
第一方面,本公开实施例提供了一种消息处理方法,包括:
接收服务器发送的至少一条待处理数据;所述待处理数据中包括待处理消息、所述待处理消息对应的消息标识、以及基准消息标识;所述基准消息标识为所述服务器发送的时序上位于所述待处理消息之前的消息的标识;
基于接收到的待处理数据中的消息标识,以及消息队列中各个消息标识,确定接收到的待处理数据在所述消息队列中的插入位置,并按照所述插入位置将接收到的待处理数据插入至所述消息队列中;
基于所述消息队列中的待处理数据中的消息标识及基准消息标识,对所述消息队列中的待处理数据进行连续性检测,并按照队列顺序依次展示通过连续性检测的待处理数据中的待处理消息。
一种可选的实施方式中,所述基于接收到的待处理数据中的消息标识,以及消息队列中各个待处理数据的消息标识,确定接收到的待处理数据在所述消息队列中的插入位置,包括:
基于所述消息队列中已存在的待处理数据,对接收的待处理数据进行去重处理,得到去重后的待处理数据;
基于去重后的待处理数据的消息标识及所述消息队列中已存在的待处理数据的消息标识,对去重后的待处理数据及所述消息队列中已存在的待处理数据进行排序,并基于排序结果确定去重后的待处理数据在所述消息队列中的插入位置。
一种可选的实施方式中,所述基于所述消息队列中的待处理数据中的消息标识及基准消息标识,对所述消息队列中的待处理数据进行连续性检测,包括:
针对所述消息队列中位于队首的待处理数据,若该待处理数据的基准消息标识与前一展示的待处理消息对应的消息标识匹配,或前一展示的待处理消息不存在,则确定该待处理数据通过连续性检测;
分别针对所述消息队列中除位于队首的待处理数据外的其他任一待处理数据,若所述其他任一待处理数据的基准消息标识与所述消息队列中在所述其他任一待处理数据之前的待处理数据的基准消息标识匹配,且所述其他任一待处理数据之前的各个待处理数据都通过连续性检测,则确定所述其他任一待处理数据通过连续性检测。
一种可选的实施方式中,在进行连续性检测之后,所述方法还包括:
在所述消息队列中存在未通过连续性检测的待处理数据的情况下,将所述消息队列中最末尾的通过连续性检测的待处理数据作为目标数据;
向所述服务器请求时序上位于所述目标数据之后的待处理数据。
一种可选的实施方式中,所述方法还包括:
以预设时长为周期,对所述消息队列中的待处理数据进行连续性检测,并按照队列顺序依次展示通过连续性检测的待处理数据中的待处理消息。
一种可选的实施方式中,所述向所述服务器请求时序上位于所述目标数据之后的待处理数据,包括:
基于所述服务器对应的多条访问通道对应的状态信息及类型信息,从所述多条访问通道中筛选出目标通道;其中,所述状态信息包括可用状态及不可用状态,所述类型信息包括长连接通道及短连接通道;
通过所述目标通道向所述服务器请求时序上位于所述目标数据之后的待处理数据。
一种可选的实施方式中,所述方法还包括:
在请求时序上位于所述目标数据之后的待处理数据失败的情况下,更新所述目标通道的状态信息,并跳转至筛选目标通道的步骤。
第二方面,本公开实施例还提供一种消息处理装置,包括:
接收模块,用于接收服务器发送的至少一条待处理数据;所述待处理数据中包括待处理消息、所述待处理消息对应的消息标识、以及基准消息标识;所述基准消息标识为所述服务器发送的时序上位于所述待处理消息之前的消息的标识;
插入模块,用于基于接收到的待处理数据中的消息标识,以及消息队列中各个消息标识,确定接收到的待处理数据在所述消息队列中的插入位置,并按照所述插入位置将接收到的待处理数据插入至所述消息队列中;
展示模块,用于基于所述消息队列中的待处理数据中的消息标识及基准消息标识,对所述消息队列中的待处理数据进行连续性检测,并按照队列顺序依次展示通过连续性检测的待处理数据中的待处理消息。
一种可选的实施方式中,所述插入模块具体用于:
基于所述消息队列中已存在的待处理数据,对接收的待处理数据进行去重处理,得到去重后的待处理数据;
基于去重后的待处理数据的消息标识及所述消息队列中已存在的待处理数据的消息标识,对去重后的待处理数据及所述消息队列中已存在的待处理数据进行排序,并基于排序结果确定去重后的待处理数据在所述消息队列中的插入位置。
一种可选的实施方式中,所述展示模块在基于所述消息队列中的待处理数据中的消息标识及基准消息标识,对所述消息队列中的待处理数据进行连续性检测时,具体用于:
针对所述消息队列中位于队首的待处理数据,若该待处理数据的基准消息标识与前一展示的待处理消息对应的消息标识匹配,或前一展示的待处理消息不存在,则确定该待处理数据通过连续性检测;
分别针对所述消息队列中除位于队首的待处理数据外的其他任一待处理数据,若所述其他任一待处理数据的基准消息标识与所述消息队列中在所述其他任一待处理数据之前的待处理数据的基准消息标识匹配,且所述其他任一待处理数据之前的各个待处理数据都通过连续性检测,则确定所述其他任一待处理数据通过连续性检测。
一种可选的实施方式中,在进行连续性检测之后,所述展示模块还用于:
在所述消息队列中存在未通过连续性检测的待处理数据的情况下,将所述消息队列中最末尾的通过连续性检测的待处理数据作为目标数据;
向所述服务器请求时序上位于所述目标数据之后的待处理数据。
一种可选的实施方式中,所述展示模块还用于:
以预设时长为周期,对所述消息队列中的待处理数据进行连续性检测,并按照队列顺序依次展示通过连续性检测的待处理数据中的待处理消息。
一种可选的实施方式中,所述展示模块在向所述服务器请求时序上位于所述目标数据之后的待处理数据时,用于:
基于所述服务器对应的多条访问通道对应的状态信息及类型信息,从所述多条访问通道中筛选出目标通道;其中,所述状态信息包括可用状态及不可用状态,所述类型信息包括长连接通道及短连接通道;
通过所述目标通道向所述服务器请求时序上位于所述目标数据之后的待处理数据。
一种可选的实施方式中,所述展示模块还用于:
在请求时序上位于所述目标数据之后的待处理数据失败的情况下,更新所述目标通道的状态信息,并跳转至筛选目标通道的步骤。
第三方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本公开实施例提供的消息处理方法及装置,接收服务器发送的至少一条待处理数据;所述待处理数据中包括待处理消息、所述待处理消息对应的消息标识、以及基准消息标识;所述基准消息标识为所述服务器发送的时序上位于所述待处理消息之前的消息的标识;基于接收到的待处理数据中的消息标识,以及消息队列中各个消息标识,确定接收到的待处理数据在所述消息队列中的插入位置,并按照所述插入位置将接收到的待处理数据插入至所述消息队列中;基于所述消息队列中的待处理数据中的消息标识及基准消息标识,对所述消息队列中的待处理数据进行连续性检测,并按照队列顺序依次展示通过连续性检测的待处理数据中的待处理消息。
本公开实施例通过待处理数据的消息标识,将需要处理的消息排序并存放至队列中,再根据待处理数据中的基准消息标识和消息标识,对消息队列中的待处理数据进行连续性检测,并将通过连续性检测的待处理消息按照队列顺序依次展示,使待处理消息的顺序与发送时的顺序一致,便于用户理解消息的真实语义。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种消息处理方法的流程图;
图2示出了本公开实施例所提供的一种消息处理装置的示意图;
图3示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
经研究发现,受到网络流畅度的影响,服务器发送不同消息所需要的时间通常不同,发送的消息到达客户端的先后顺序可能不同,客户端却仍然按照接收消息的顺序展示这些消息,在一些场景下,消息先后顺序的改变,可能导致其语义与正常情况下的语义有较大不同,对于理解能力较弱的用户难以理解消息的真实含义,不利于用户真实语义的传达。
基于上述研究,本公开提供了一种消息处理方法及装置,通过待处理数据的消息标识,将需要处理的消息排序并存放至队列中,再根据待处理数据中的基准消息标识和消息标识,对消息队列中的待处理数据进行连续性检测,并将通过连续性检测的待处理消息按照队列顺序依次展示,使待处理消息的顺序与发送时的顺序一致,便于用户理解消息的真实语义。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种消息处理方法进行详细介绍,本公开实施例所提供的消息处理方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备可以为用户持有的客户端,也可以是独立于客户端的中转服务器。在一些可能的实现方式中,该消息处理方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的消息处理方法的流程图,所述方法包括步骤S101~S103,其中:
S101:接收服务器发送的至少一条待处理数据;所述待处理数据中包括待处理消息、所述待处理消息对应的消息标识、以及基准消息标识;所述基准消息标识为所述服务器发送的时序上位于所述待处理消息之前的消息的标识。
该步骤中,待处理数据可以为一个数据包,包括待处理消息、待处理消息对应的消息标识、以及基准消息标识,其中,待处理消息可以为其他客户端发送至当前客户端的消息,待处理消息对应的消息标识可以为服务器根据接收到该待处理消息的时序为待处理消息赋予的编号,基准消息标识可以为服务器发送给当前客户端的在时序上位于待处理消息之前的消息的消息标识。
示例性的,客户端A可以通过服务器向客户端B依次发送了“1+1”、“=”、“2”三条消息,服务器接收到了上述消息,并依次为上述消息赋予了消息标识“001”、“002”、“003”,并为消息“=”赋予基准消息标识“001”、为消息“2”赋予基准消息标识“002”,由于服务器在接收消息“1+1”之前没有接收到过其他消息,可以为消息“1+1”赋予基准消息标识“000”,或不为消息“1+1”赋予基准消息标识,在生成待处理消息对应的消息标识及基准消息标识后,可以将其打包成数据包,得到待处理数据。
S102:基于接收到的待处理数据中的消息标识,以及消息队列中各个消息标识,确定接收到的待处理数据在所述消息队列中的插入位置,并按照所述插入位置将接收到的待处理数据插入至所述消息队列中。
在接收到服务器发送的待处理数据后,可以基于待处理数据中的消息标识,以及消息队列中的各个消息标识,将待处理数据插入至消息队列中。
这里,消息队列中的数据可以为当前时刻之前一段时间接收到的待处理数据,这都待处理数据同样可以包含待处理消息、消息标识及基准消息标识,当消息队列中的数据被展示后,可以将该数据从消息队列中移除。
具体的,可以通过以下步骤确定接收到的待处理消息在消息队列中的插入位置:
基于所述消息队列中已存在的待处理数据,对接收的待处理数据进行去重处理,得到去重后的待处理数据;
基于去重后的待处理数据的消息标识及所述消息队列中已存在的待处理数据的消息标识,对去重后的待处理数据及所述消息队列中已存在的待处理数据进行排序,并基于排序结果确定去重后的待处理数据在所述消息队列中的插入位置。
该步骤中,可能服务器重复发送了某个待处理数据,因此,可以先对接收的待处理数据进行去重,将消息标识一致的待处理数据丢弃,得到去重后的待处理数据,然后,将消息队列中已存在的待处理数据及上述接收到的待处理数据按照消息标识的大小进行排列,并根据排序得到的顺序确定插入位置。
这样,通过对消息队列中的待处理数据进行排序,能够使消息队列中的待处理数据按照服务器接收消息的时序排列,在依次展示队列中待处理数据对应的待处理消息时,可以保证消息的时序准确。
S103:基于所述消息队列中的待处理数据中的消息标识及基准消息标识,对所述消息队列中的待处理数据进行连续性检测,并按照队列顺序依次展示通过连续性检测的待处理数据中的待处理消息。
该步骤中,虽然消息队列中的待处理数据是按照服务器接收消息的时序排列的,但服务器在发送消息的过程中,可能会丢失某些待处理数据,比如,在服务器发送了“1+1”、“=”、“2”三条消息对应的待处理数据后,消息“=”对应的待处理数据未能送达到需要接收消息的客户端,客户端仅接收到了消息“1+1”及消息“2”对应的待处理数据,若将其展示给用户,用户无法理解消息完整的语义,因此,需要检测消息的连续性,在待处理数据通过连续性检测后,才将其展示给用户。
具体的,可以通过以下步骤进行连续性检测:
针对所述消息队列中位于队首的待处理数据,若该待处理数据的基准消息标识与前一展示的待处理消息对应的消息标识匹配,或前一展示的待处理消息不存在,则确定该待处理数据通过连续性检测;
分别针对所述消息队列中除位于队首的待处理数据外的其他任一待处理数据,若所述其他任一待处理数据的基准消息标识与所述消息队列中在所述其他任一待处理数据之前的待处理数据的基准消息标识匹配,且所述其他任一待处理数据之前的各个待处理数据都通过连续性检测,则确定所述其他任一待处理数据通过连续性检测。
针对消息队列中位于队首的待处理数据,可以将其对应的基准消息标识与前一展示的待处理消息的消息标识进行比较,若两者一致,则可以确定该待处理数据与前一展示的待处理数据匹配,则该待处理数据通过连续性检测;若客户端尚未展示过任何待处理消息,即前一展示的待处理消息不存在,也可以确定该待处理数据通过连续性检测。
针对消息队列中的其他待处理数据,若该待处理数据的基准消息标识与消息队列中的前一待处理数据的消息标识一致,且消息队列中,该待处理数据之前的所有待处理数据都通过连续性检测,则可以确定该待处理消息通过连续性检测。
这样,通过连续性检测的待处理消息都是按照时序排列的,且在时序上都是连续的,可以将其展示给用户。
进一步的,若消息队列中存在未通过连续性检测的待处理数据,可以将消息队列中最末尾的通过连续性检测的待处理数据作为目标数据,并向服务器请求时序上位于该目标数据之后的待处理数据,在接收到服务器重新发送的待处理数据后,可以跳转至确定其在消息队列中的插入位置,并将其按照插入位置插入至消息队列中的步骤。
这里,在检测到存在未通过连续性检测的待处理消息后,可以停止连续性检测的步骤,避免计算资源的浪费。
这样,接收到服务器重新发送待处理数据后,可以对其进行去重处理,并将其插入至消息队列,使消息队列中的各个待处理数据通过连续性检测,保证最终展示给用户的消息是连续的。
在一些实施例中,可能服务器重新发送的待处理数据仍然未能送达至客户端,此时,由于停止了连续性检测,客户端也不会向服务器重新拉取待处理数据,因此,可以以预设时长为周期,对消息队列中的待处理数据进行连续性检测,并按照队列顺序依次展示通过连续性检测的待处理数据中的待处理消息,这样,在检测到未通过连续性检测的待处理数据后,可以再次向服务器请求目标数据之后的数据。
通常,在出现服务器未能成功将待处理数据送达至客户端的情况时,服务器与客户端之间的通道可能受阻,因此,可以在向服务器请求目标数据之前,先从服务器对应的多条访问通道中筛选出目标通道,再利用目标通道向服务器请求目标数据之后的待处理数据。
具体的,可以基于服务器对应的多条访问通道对应的状态信息及类型信息,从多条访问通道中筛选出目标通道;其中,状态信息包括可用状态及不可用状态,类型信息包括长连接通道及短连接通道;然后,通过目标通道向所述服务器请求时序上位于目标数据之后的待处理数据。
示例性的,可以优先选取状态信息为可用,且通道类型为长连接通道的访问通道作为目标通道,能够保证通道可用,且节省通信所耗费的资源,在长连接通道都不可用的情况下,可以选取状态信息为可用,且通道类型为短连接通道的访问通道作为目标通道。
之后,若通过目标通道请求时序上位于目标数据之后的待处理数据失败,则可以将目标通道的状态信息更新为不可用状态,并跳转至筛选目标通道的步骤,重新请求。
本公开实施例提供的消息处理方法及装置,接收服务器发送的至少一条待处理数据;所述待处理数据中包括待处理消息、所述待处理消息对应的消息标识、以及基准消息标识;所述基准消息标识为所述服务器发送的时序上位于所述待处理消息之前的消息的标识;基于接收到的待处理数据中的消息标识,以及消息队列中各个消息标识,确定接收到的待处理数据在所述消息队列中的插入位置,并按照所述插入位置将接收到的待处理数据插入至所述消息队列中;基于所述消息队列中的待处理数据中的消息标识及基准消息标识,对所述消息队列中的待处理数据进行连续性检测,并按照队列顺序依次展示通过连续性检测的待处理数据中的待处理消息。
本公开实施例通过待处理数据的消息标识,将需要处理的消息排序并存放至队列中,再根据待处理数据中的基准消息标识和消息标识,对消息队列中的待处理数据进行连续性检测,并将通过连续性检测的待处理消息按照队列顺序依次展示,使待处理消息的顺序与发送时的顺序一致,便于用户理解消息的真实语义。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与消息处理方法对应的消息处理装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述消息处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图2所示,为本公开实施例提供的一种消息处理装置的示意图,所述装置包括:
接收模块210,用于接收服务器发送的至少一条待处理数据;所述待处理数据中包括待处理消息、所述待处理消息对应的消息标识、以及基准消息标识;所述基准消息标识为所述服务器发送的时序上位于所述待处理消息之前的消息的标识;
插入模块220,用于基于接收到的待处理数据中的消息标识,以及消息队列中各个消息标识,确定接收到的待处理数据在所述消息队列中的插入位置,并按照所述插入位置将接收到的待处理数据插入至所述消息队列中;
展示模块230,用于基于所述消息队列中的待处理数据中的消息标识及基准消息标识,对所述消息队列中的待处理数据进行连续性检测,并按照队列顺序依次展示通过连续性检测的待处理数据中的待处理消息。
一种可选的实施方式中,所述插入模块220具体用于:
基于所述消息队列中已存在的待处理数据,对接收的待处理数据进行去重处理,得到去重后的待处理数据;
基于去重后的待处理数据的消息标识及所述消息队列中已存在的待处理数据的消息标识,对去重后的待处理数据及所述消息队列中已存在的待处理数据进行排序,并基于排序结果确定去重后的待处理数据在所述消息队列中的插入位置。
一种可选的实施方式中,所述展示模块230在基于所述消息队列中的待处理数据中的消息标识及基准消息标识,对所述消息队列中的待处理数据进行连续性检测时,具体用于:
针对所述消息队列中位于队首的待处理数据,若该待处理数据的基准消息标识与前一展示的待处理消息对应的消息标识匹配,或前一展示的待处理消息不存在,则确定该待处理数据通过连续性检测;
分别针对所述消息队列中除位于队首的待处理数据外的其他任一待处理数据,若所述其他任一待处理数据的基准消息标识与所述消息队列中在所述其他任一待处理数据之前的待处理数据的基准消息标识匹配,且所述其他任一待处理数据之前的各个待处理数据都通过连续性检测,则确定所述其他任一待处理数据通过连续性检测。
一种可选的实施方式中,在进行连续性检测之后,所述展示模块230还用于:
在所述消息队列中存在未通过连续性检测的待处理数据的情况下,将所述消息队列中最末尾的通过连续性检测的待处理数据作为目标数据;
向所述服务器请求时序上位于所述目标数据之后的待处理数据。
一种可选的实施方式中,所述展示模块230还用于:
以预设时长为周期,对所述消息队列中的待处理数据进行连续性检测,并按照队列顺序依次展示通过连续性检测的待处理数据中的待处理消息。
一种可选的实施方式中,所述展示模块230在向所述服务器请求时序上位于所述目标数据之后的待处理数据时,用于:
基于所述服务器对应的多条访问通道对应的状态信息及类型信息,从所述多条访问通道中筛选出目标通道;其中,所述状态信息包括可用状态及不可用状态,所述类型信息包括长连接通道及短连接通道;
通过所述目标通道向所述服务器请求时序上位于所述目标数据之后的待处理数据。
一种可选的实施方式中,所述展示模块230还用于:
在请求时序上位于所述目标数据之后的待处理数据失败的情况下,更新所述目标通道的状态信息,并跳转至筛选目标通道的步骤。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
对应于图1中的消息处理方法,本公开实施例还提供了一种电子设备300,如图3所示,为本公开实施例提供的电子设备300结构示意图,包括:
处理器31、存储器32、和总线33;存储器32用于存储执行指令,包括内存321和外部存储器322;这里的内存321也称内存储器,用于暂时存放处理器31中的运算数据,以及与硬盘等外部存储器322交换的数据,处理器31通过内存321与外部存储器322进行数据交换,当所述电子设备300运行时,所述处理器31与所述存储器32之间通过总线33通信,使得所述处理器31执行以下指令:
接收服务器发送的至少一条待处理数据;所述待处理数据中包括待处理消息、所述待处理消息对应的消息标识、以及基准消息标识;所述基准消息标识为所述服务器发送的时序上位于所述待处理消息之前的消息的标识;
基于接收到的待处理数据中的消息标识,以及消息队列中各个消息标识,确定接收到的待处理数据在所述消息队列中的插入位置,并按照所述插入位置将接收到的待处理数据插入至所述消息队列中;
基于所述消息队列中的待处理数据中的消息标识及基准消息标识,对所述消息队列中的待处理数据进行连续性检测,并按照队列顺序依次展示通过连续性检测的待处理数据中的待处理消息。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的消息处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的消息处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种消息处理方法,其特征在于,包括:
接收服务器发送的至少一条待处理数据;所述待处理数据中包括待处理消息、所述待处理消息对应的消息标识、以及基准消息标识;所述基准消息标识为所述服务器发送的时序上位于所述待处理消息之前的消息的标识;
基于接收到的待处理数据中的消息标识,以及消息队列中各个消息标识,确定接收到的待处理数据在所述消息队列中的插入位置,并按照所述插入位置将接收到的待处理数据插入至所述消息队列中;其中,所述消息队列中待处理数据是按照所述服务器接收所述待处理消息的时序排序的;
基于所述消息队列中的待处理数据中的消息标识及基准消息标识,对所述消息队列中的待处理数据进行连续性检测,并按照队列顺序依次展示通过连续性检测的待处理数据中的待处理消息。
2.根据权利要求1所述的方法,其特征在于,所述基于接收到的待处理数据中的消息标识,以及消息队列中各个待处理数据的消息标识,确定接收到的待处理数据在所述消息队列中的插入位置,包括:
基于所述消息队列中已存在的待处理数据,对接收的待处理数据进行去重处理,得到去重后的待处理数据;
基于去重后的待处理数据的消息标识及所述消息队列中已存在的待处理数据的消息标识,对去重后的待处理数据及所述消息队列中已存在的待处理数据进行排序,并基于排序结果确定去重后的待处理数据在所述消息队列中的插入位置。
3.根据权利要求2所述的方法,其特征在于,所述基于所述消息队列中的待处理数据中的消息标识及基准消息标识,对所述消息队列中的待处理数据进行连续性检测,包括:
针对所述消息队列中位于队首的待处理数据,若该待处理数据的基准消息标识与前一展示的待处理消息对应的消息标识匹配,或前一展示的待处理消息不存在,则确定该待处理数据通过连续性检测;
分别针对所述消息队列中除位于队首的待处理数据外的其他任一待处理数据,若所述其他任一待处理数据的基准消息标识与所述消息队列中在所述其他任一待处理数据之前的待处理数据的基准消息标识匹配,且所述其他任一待处理数据之前的各个待处理数据都通过连续性检测,则确定所述其他任一待处理数据通过连续性检测。
4.根据权利要求3所述的方法,其特征在于,在进行连续性检测之后,所述方法还包括:
在所述消息队列中存在未通过连续性检测的待处理数据的情况下,将所述消息队列中最末尾的通过连续性检测的待处理数据作为目标数据;
向所述服务器请求时序上位于所述目标数据之后的待处理数据。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
以预设时长为周期,对所述消息队列中的待处理数据进行连续性检测,并按照队列顺序依次展示通过连续性检测的待处理数据中的待处理消息。
6.根据权利要求4所述的方法,其特征在于,所述向所述服务器请求时序上位于所述目标数据之后的待处理数据,包括:
基于所述服务器对应的多条访问通道对应的状态信息及类型信息,从所述多条访问通道中筛选出目标通道;其中,所述状态信息包括可用状态及不可用状态,所述类型信息包括长连接通道及短连接通道;
通过所述目标通道向所述服务器请求时序上位于所述目标数据之后的待处理数据。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在请求时序上位于所述目标数据之后的待处理数据失败的情况下,更新所述目标通道的状态信息,并跳转至筛选目标通道的步骤。
8.一种消息处理装置,其特征在于,包括:
接收模块,用于接收服务器发送的至少一条待处理数据;所述待处理数据中包括待处理消息、所述待处理消息对应的消息标识、以及基准消息标识;所述基准消息标识为所述服务器发送的时序上位于所述待处理消息之前的消息的标识;
插入模块,用于基于接收到的待处理数据中的消息标识,以及消息队列中各个消息标识,确定接收到的待处理数据在所述消息队列中的插入位置,并按照所述插入位置将接收到的待处理数据插入至所述消息队列中;其中,所述消息队列中待处理数据是按照所述服务器接收所述待处理消息的时序排序的;
展示模块,用于基于所述消息队列中的待处理数据中的消息标识及基准消息标识,对所述消息队列中的待处理数据进行连续性检测,并按照队列顺序依次展示通过连续性检测的待处理数据中的待处理消息。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的消息处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任意一项所述的消息处理方法的步骤。
CN202110667472.2A 2021-06-16 2021-06-16 一种消息处理方法及装置 Active CN113296985B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110667472.2A CN113296985B (zh) 2021-06-16 2021-06-16 一种消息处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110667472.2A CN113296985B (zh) 2021-06-16 2021-06-16 一种消息处理方法及装置

Publications (2)

Publication Number Publication Date
CN113296985A CN113296985A (zh) 2021-08-24
CN113296985B true CN113296985B (zh) 2024-03-01

Family

ID=77328504

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110667472.2A Active CN113296985B (zh) 2021-06-16 2021-06-16 一种消息处理方法及装置

Country Status (1)

Country Link
CN (1) CN113296985B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114221922A (zh) * 2021-12-14 2022-03-22 重庆奇艺天下科技有限公司 消息处理方法、装置、电子设备及可读存储介质
CN114338807B (zh) * 2021-12-30 2023-12-22 紫光云(南京)数字技术有限公司 一种主机overlay下的消息排序机制

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004095796A1 (en) * 2003-04-17 2004-11-04 Visto Corporation A data access, replication or communication system comprising a message queuing communications platform
CN108718274A (zh) * 2018-05-29 2018-10-30 北京德惠众合信息技术有限公司 一种即时通讯消息的防丢失方法
CN109194642A (zh) * 2018-08-28 2019-01-11 深圳市创维群欣安防科技股份有限公司 白板远程同步处理方法、系统及存储介质
CN111158933A (zh) * 2019-12-31 2020-05-15 易票联支付有限公司 一种基于消息队列的分布式事务处理方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004095796A1 (en) * 2003-04-17 2004-11-04 Visto Corporation A data access, replication or communication system comprising a message queuing communications platform
CN108718274A (zh) * 2018-05-29 2018-10-30 北京德惠众合信息技术有限公司 一种即时通讯消息的防丢失方法
CN109194642A (zh) * 2018-08-28 2019-01-11 深圳市创维群欣安防科技股份有限公司 白板远程同步处理方法、系统及存储介质
CN111158933A (zh) * 2019-12-31 2020-05-15 易票联支付有限公司 一种基于消息队列的分布式事务处理方法及系统

Also Published As

Publication number Publication date
CN113296985A (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
CN113296985B (zh) 一种消息处理方法及装置
CN111756917B (zh) 信息交互方法、电子设备和计算机可读介质
CN110505141B (zh) 即时通讯消息的处理方法、装置、可读介质及电子设备
CN107391579B (zh) 一种查找账户的方法和装置
CN111416765A (zh) 一种互动消息处理的方法及装置
CN111162993A (zh) 信息融合方法和设备
CN107888553A (zh) 一种验证方法、服务器和系统
CN111338810A (zh) 用于存储信息的方法和装置
CN108197210B (zh) 基于好友关系的用户交互阅读方法及计算设备
CN110769064A (zh) 一种用于离线推送消息的系统、方法和设备
CN111277488B (zh) 会话处理方法和装置
CN107295412B (zh) 数据处理方法、装置及系统
CN112994900B (zh) 文件会签方法、装置、客户端、服务端和存储介质
CN114298699B (zh) 非同质化通证的生成方法、获取方法及装置
CN110545296A (zh) 一种日志数据获取方法、装置及其设备
CN108829824B (zh) 互联网运营活动中的资源处理方法及装置
CN111291351B (zh) 活动参与方法、装置和设备
CN110765016B (zh) 游戏测试指令的处理方法、系统、服务器和存储设备
CN108875638B (zh) 人脸匹配测试方法和、装置和系统
CN110266610B (zh) 流量识别方法、装置、电子设备
CN112363661A (zh) 魔表数据处理方法、装置及电子设备
CN111125187A (zh) 基于区块链的数据管理方法及装置
CN111414566A (zh) 用于推送信息的方法和装置
CN112650595A (zh) 一种通讯内容处理方法及相关装置
CN105009516B (zh) 用于诊断或测试的透明消息修改

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