CN113905002A - 一种消息推送方法、装置、系统及存储介质 - Google Patents
一种消息推送方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN113905002A CN113905002A CN202111165886.1A CN202111165886A CN113905002A CN 113905002 A CN113905002 A CN 113905002A CN 202111165886 A CN202111165886 A CN 202111165886A CN 113905002 A CN113905002 A CN 113905002A
- Authority
- CN
- China
- Prior art keywords
- group
- message
- target
- change event
- event
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
Abstract
本公开实施例涉及一种消息推送方法、装置、系统及存储介质。本公开的至少一个实施例中,服务端在获取目标群的相关消息后,并非直接将相关消息推送给目标群中的每个成员的客户端,而是基于相关消息生成群变更事件,并将群变更事件保存到数据缓冲通道中,在满足推送条件时,才从数据缓冲通道中获取目标群的至少一个群变更事件,将至少一个群变更事件推送到目标群的每个成员的客户端,实现推送限流,降低服务端的资源消耗,提升系统的稳定性。
Description
技术领域
本公开实施例涉及即时通信技术领域,具体涉及一种消息推送方法、装置、系统及存储介质。
背景技术
即时通信(Instant Messaging,IM)系统允许多人使用群组实时地进行消息传递,因此,IM系统需要主动告知用户有新消息。
目前,为了实现以上功能,IM服务端主动推送消息或者IM客户端不断主动轮询拉取消息。以群组为例,IM服务端主动推送消息时,需要向群组中每个成员的IM客户端推送该消息。
但在,在超大群场景下,也即群组中的成员数量超过预设值(如5000人、10000人等)的场景下,超大群的IM服务端如果每条群消息、群组信息的每次变更都推送给群内每个成员的IM客户端,超大群的IM服务端的资源消耗将大幅提升,并且对IM系统(包括IM服务端和IM客户端)的稳定性和性能也会产生影响。
发明内容
为了解决现有技术存在的至少一个问题,本公开的至少一个实施例提供了一种消息推送方法、装置、系统及存储介质。
第一方面,本公开实施例提供一种消息推送方法,包括:
获取目标群的相关消息;
基于相关消息生成群变更事件,并将群变更事件保存到数据缓冲通道中;
满足预设推送条件时,从数据缓冲通道中获取目标群对应的至少一个群变更事件;
将至少一个群变更事件推送到目标群中的各成员的客户端。
在一些实施例中,基于相关消息生成群变更事件之前,消息推送方法还包括:
检测目标群是否为成员数量超过预设值的群组;
当检测到目标群的成员数量超过预设值时,执行基于相关消息生成群变更事件的步骤及其后续步骤。
在一些实施例中,相关消息包括:向目标群发送的消息和/或群信息变更消息;
基于相关消息生成群变更事件包括:基于向目标群发送的消息,生成新消息事件;和/或,基于群信息变更消息,生成至少一个群信息项变更事件。
在一些实施例中,将群变更事件保存到数据缓冲通道中包括:将新消息事件保存到第一数据缓冲通道中,并将至少一个群信息项变更事件保存到第二数据缓冲通道中;
从数据缓冲通道中获取目标群对应的至少一个群变更事件包括:从第一数据缓冲通道中获取目标群对应的至少一个新消息事件,和/或从第二数据缓冲通道中获取目标群对应的至少一个群信息项变更事件;
将至少一个群变更事件推送到目标群中的各成员的客户端包括:将获取的至少一个新消息事件和/或至少一个群信息项变更事件推送到目标群中的各成员的客户端。
在一些实施例中,将至少一个群变更事件推送到目标群中的各成员的客户端包括:
聚合至少一个群变更事件得到目标事件;
将目标事件推送至目标群中的各成员的客户端。
在一些实施例中,聚合至少一个群变更事件得到目标事件包括:
针对至少一个新消息事件,从消息服务获取目标群的最新消息,生成包括最新消息及其对应的上下文信息的目标事件;
和/或,
针对至少一个群信息项变更事件,确定目标群的最新状态,生成包括最新状态的目标事件。
在一些实施例中,预设推送条件包括:当前时间与上一次推送的时间间隔大于或等于预设的时间间隔阈值。
第二方面,本公开实施例提供一种消息推送装置,包括:
第一获取单元,用于获取目标群的相关消息;
处理单元,用于基于相关消息生成群变更事件,并将群变更事件保存到数据缓冲通道中;
第二获取单元,用于满足预设推送条件时,从数据缓冲通道中获取目标群对应的至少一个群变更事件;
推送单元,用于将至少一个群变更事件推送到目标群中的各成员的客户端。
第三方面,本公开实施例还提出一种包括至少一个计算装置和至少一个存储指令的存储装置的系统,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行如第一方面任一实施例所述消息推送方法的步骤。
第四方面,本公开实施例还提出一种计算机可读存储介质,所述计算机可读存储介质存储程序或指令,当所述程序或指令被至少一个计算装置运行时,使至少一个计算装置执行如第一方面任一实施例所述消息推送方法的步骤。
可见,本公开的至少一个实施例中,服务端在获取目标群的相关消息后,并非直接将相关消息推送给目标群中的每个成员的客户端,而是基于相关消息生成群变更事件,并将群变更事件保存到数据缓冲通道中,在满足推送条件时,才从数据缓冲通道中获取目标群的至少一个群变更事件,将至少一个群变更事件推送到目标群的每个成员的客户端,实现推送限流,降低服务端的资源消耗,提升系统(包括服务端和客户端)的稳定性。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是一种IM服务端主动推送消息的场景示意图;
图2是本公开实施例提供的一种消息推送方法的示例性流程图;
图3是本公开实施例提供的一种IM服务端主动推送消息的场景示意图;
图4是本公开实施例提供的另一种IM服务端主动推送消息的场景示意图;
图5是本公开实施例提供的一种消息推送装置的示例性框图;
图6是本公开实施例提供的一种包括至少一个计算装置和至少一个存储指令的存储装置的系统的示例性框图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。基于所描述的本公开的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
图1为IM服务端主动推送消息的场景,在图1中,群组中的用户1在该群组中发送一条消息时,IM服务端获取该群组中的所有成员(记为用户2,用户3,……,用户N),并通过推送通道向该群组中所有成员的IM客户端推送该消息,并且每当群组中有新消息时,都需要经过以上流程。可见,在超大群场景下,也即群组中的成员数量超过预设值的场景下,超大群的IM服务端如果每条消息、群信息的每次变更都推送给群内每个成员的IM客户端,超大群的IM服务端的资源消耗将大幅提升,并且对IM系统(包括IM服务端和IM客户端)的稳定性和性能也会产生影响。
为此,本公开实施例提供了一种消息推送方法、装置、系统及存储介质,服务端在获取目标群的相关消息后,并非直接将相关消息推送给目标群中的每个成员的客户端,而是基于相关消息生成群变更事件,将群变更事件保存到数据缓冲通道中,保证事件不丢失,并在满足推送条件时,才从数据缓冲通道中获取目标群的至少一个群变更事件,将至少一个群变更事件推送到目标群的每个成员的客户端,实现推送限流,降低服务端的资源消耗,提升系统(包括服务端和客户端)的稳定性。
图2为本公开实施例提供的一种消息推送方法的示例性流程图。该消息推送方法的执行主体为服务端,例如IM服务端。该消息推送方法可以包括但不限于如下步骤201至步骤204:
在步骤201中,获取目标群的相关消息。
目标群的任一成员可以向目标群发送新消息;目标群的管理员可以修改群信息,群信息包括但不限于:群名称、群头像、群公告、群人数等多项信息。这样,IM服务端可以获取目标群的相关消息,相关消息包括向目标群发送的消息和/或群信息变更消息。
IM服务端在获取目标群的相关消息后,将相关消息存储到数据库中,以确保相关消息不丢失。
IM服务端在获取目标群的相关消息后,可以获取目标群的成员数量,进而可以判断目标群是否为超大群,具体地,判断目标群的成员数量是否超过预设值,若超过,则确定目标群为超大群,否则确定目标群为普通群。
IM服务端判断目标群为普通群,则直接通过推送通道向目标群中所有成员的IM客户端推送该相关消息。
IM服务端判断目标群为超大群,则执行步骤202至步骤204。
在步骤202中,基于相关消息生成群变更事件,并将群变更事件保存到数据缓冲通道中。
由于相关消息包括向目标群发送的消息和/或群信息变更消息,因此,群变更事件包括新消息事件和/或群信息项变更事件。
IM服务端基于向目标群发送的消息,生成新消息事件,其中,新消息事件包括多个字段信息,多个字段信息例如包括但不限于:消息标识(消息ID)、时间戳、群标识(群ID)等。其中,时间戳为向目标群发送该消息的时刻信息。
IM服务端基于群信息变更消息,生成至少一个群信息项变更事件,其中,群信息项变更事件包括多个字段信息,多个字段信息例如包括但不限于:群信息项标识(群信息项ID)、时间戳、群标识(群ID)等。
IM服务端生成新消息事件和/或群信息项变更事件后,将新消息事件和/或群信息项变更事件保存到数据缓冲通道中,以保证事件不丢失。
在步骤203中,满足预设推送条件时,从数据缓冲通道中获取目标群对应的至少一个群变更事件。
其中,预设推送条件包括但不限于:当前时间与上一次推送的时间间隔大于或等于预设的时间间隔阈值。该预设推送条件的设置用以实现推送限流,降低了推送通道的数据压力。
IM服务端可以记录当前时间与上一次推送的时间间隔,当时间间隔小于预设的时间间隔阈值,确定不满足预设推送条件。
数据缓冲通道可以理解为数据缓冲空间,满足预设推送条件时,IM服务端可以从数据缓冲通道中获取涉及目标群的所有群变更事件。
在步骤204中,将至少一个群变更事件推送到目标群中的各成员的客户端。
其中,客户端例如为IM客户端。
可见,IM服务端在获取目标群的相关消息后,并非直接将相关消息推送给目标群中的每个成员的IM客户端,而是基于相关消息生成群变更事件,并将群变更事件保存到数据缓冲通道中,在满足推送条件时,才从数据缓冲通道中获取目标群的至少一个群变更事件,将至少一个群变更事件推送到目标群的每个成员的IM客户端,实现推送限流,降低服务端的资源消耗,提升IM系统(包括IM服务端和IM客户端)的稳定性。
在一些实施例中,IM服务端可以将新消息事件保存到第一数据缓冲通道中,并将至少一个群信息项变更事件保存到第二数据缓冲通道中,以便对不同的事件进行管理,例如,第一数据缓冲通道中仅缓冲新消息事件,IM服务端可以在第一数据缓冲通道中以统一的数据组织形式管理新消息事件,例如采用数据表形式记录新消息事件包括的多个字段信息;又例如,第二数据缓冲通道中仅缓冲群信息项变更事件,IM服务端可以在第二数据缓冲通道中以统一的数据组织形式管理群信息项变更事件,例如采用数据表形式记录群信息项变更事件包括的多个字段信息。
进而,IM服务端可以从第一数据缓冲通道中获取目标群对应的至少一个新消息事件,和/或,从第二数据缓冲通道中获取目标群对应的至少一个群信息项变更事件。
从而,IM服务端可以将获取的至少一个新消息事件和/或至少一个群信息项变更事件推送到目标群中的各成员的IM客户端。
在一些实施例中,IM服务端可以聚合至少一个群变更事件得到目标事件;进而将目标事件推送至目标群中的各成员的IM客户端。本实施例通过聚合操作可以快速消费数据缓冲通道中的事件。
在一些实施例中,针对不同类型的事件,采用不同的聚合策略。
例如,针对类型为新消息的事件,采用的聚合策略为全量聚合,具体地,IM服务端从消息服务获取目标群的最新消息,生成包括最新消息及其对应的上下文信息的目标事件。其中,消息服务可以实现为IM服务端的一个功能模块,用于从数据库中获取消息。最新消息的上下文信息包括但不限于时间戳、群标识(群ID)等。其中,时间戳为向目标群发送该最新消息的时刻信息。
又例如,针对类型为群信息项的变更事件,采用的聚合策略为增量聚合,具体地,IM服务端基于至少一个群信息项变更事件,确定目标群的最新状态,生成包括最新状态的目标事件。其中,目标群的最新状态可以理解为目前群中发生变更的群信息项的集合。
在一些实施例中,IM服务端将目标事件推送至目标群中的各成员的IM客户端后,若目标事件包括最新消息及其对应的上下文信息,则IM客户端基于最新消息的上下文信息从消息服务获取漏掉的消息,例如,IM客户端可以确定目标群中显示的最后一条消息的时间戳,进而基于最新消息的上下文信息包括的时间戳,从消息服务获取这两个时间戳之间的所有消息(即漏掉的消息)。IM客户端在获取漏掉的消息后,将漏掉的消息和最新消息显示在目标群中。
在一些实施例中,IM服务端将目标事件推送至目标群中的各成员的IM客户端后,若目标事件包括目标群的最新状态,则IM客户端基于目标群的最新状态,更新目标群的群信息。
例如,目标群的群信息包括但不限于:群名称(name)、群头像(avatar)、群人数(user_count)等。目标群的管理员修改了群信息,分别进行了改名字、换头像、拉新成员进群等操作,则目标群的最新状态包括:群名称更新信息(name update)、群头像更新信息(avatar update)和群人数更新信息(user_count update)。IM客户端基于目标群的最新状态,更新目标群的群名称、群头像和群人数。
图3是本公开实施例提供的一种IM服务端主动推送消息的场景示意图。在图3中,IM服务端包括:数据缓冲通道、限流器和数据聚合器,其中,数据缓冲通道用于缓冲群变更事件,以保证事件不丢失。限流器用于检测是否满足预设推送条件,以实现推送限流,降低推送通道的数据压力。数据聚合器至少用于在限流器检测满足预设推送条件后,从数据缓冲通道中获取至少一个群变更事件,并聚合至少一个群变更事件得到目标事件。需要说明的是,限流器和数据聚合器为IM服务端的两个功能模块,可采用软件、硬件或者软硬件相结合的方式实现。
结合图3所示的场景,对IM服务端主动推送消息的流程进行如下描述:
用户1向目标群发送新消息。IM服务端可以获取该新消息,并将该新消息存储到数据库中,以确保该新消息不丢失。IM服务端可以获取目标群的成员数量,进而判断目标群的成员数量是否超过预设值,若超过,则确定目标群为超大群。IM服务端确定目标群为超大群后,基于该新消息生成新消息事件,并将新消息事件保存到数据缓冲通道中,以保证事件不丢失。
限流器检测是否满足预设推送条件,预设推送条件包括但不限于:当前时间与上一次推送的时间间隔大于或等于预设的时间间隔阈值。
数据聚合器在限流器检测满足预设推送条件后,从数据缓冲通道中获取目标群对应的所有新消息事件,并聚合目标群对应的所有新消息事件得到目标事件,目标事件包括目标群的最新消息及其对应的上下文信息。
数据聚合器在聚合得到目标事件后,将目标事件通过推送通道推送给目标群的其他用户(用户2,用户3,……,用户N)的IM客户端。
用户2,用户3,……,用户N的IM客户端获取目标事件后,基于最新消息的上下文信息从消息服务获取漏掉的消息,将漏掉的消息和最新消息显示在目标群中。
图4是本公开实施例提供的另一种IM服务端主动推送消息的场景示意图。与图3所示的场景的区别在于,图4中,并非是用户向目标群发送新消息,而是管理员修改群信息,群信息包括但不限于:群名称(name)、群头像(avatar)、群公告、群人数(user_count)等多项信息。
结合图4所示的场景,对IM服务端主动推送消息的流程进行如下描述:
管理员修改了目标群的群信息,例如,管理员分别进行了改名字、换头像、拉新成员进群等操作。IM服务端可以获取目标群的群信息变更消息,并将群信息变更消息存储到数据库中,以确保群信息变更消息不丢失。IM服务端可以获取目标群的成员数量,进而判断目标群的成员数量是否超过预设值,若超过,则确定目标群为超大群。IM服务端确定目标群为超大群后,基于群信息变更消息生成生成群名称变更事件(name_update_event)、群头像变更事件(avatar_update_event)和群人数变更事件(user_count_update_event),并将群名称变更事件、群头像变更事件和群人数变更事件保存到数据缓冲通道中,以保证事件不丢失。
限流器检测是否满足预设推送条件,预设推送条件包括但不限于:当前时间与上一次推送的时间间隔大于或等于预设的时间间隔阈值。
数据聚合器在限流器检测满足预设推送条件后,从数据缓冲通道中获取目标群对应的群名称变更事件、群头像变更事件和群人数变更事件,并聚合这些事件得到目标事件,目标事件包括目标群的最新状态,目标群的最新状态包括:群名称更新信息(nameupdate)、群头像更新信息(avatar update)和群人数更新信息(user_count update)。
数据聚合器在聚合得到目标事件后,将目标事件通过推送通道推送给目标群的其他成员(成员1,成员2,……,成员N)的IM客户端。
成员1,成员2,……,成员N的IM客户端获取目标事件后,基于目标群的群名称更新信息(name update)、群头像更新信息(avatar update)和群人数更新信息(user_countupdate),更新目标群的名称、头像和群人数。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员能够理解,本公开实施例并不受所描述的动作顺序的限制,因为依据本公开实施例,某些步骤可以采用其他顺序或者同时进行。另外,本领域技术人员能够理解,说明书中所描述的实施例均属于可选实施例。
图5为本公开实施例提供的一种消息推送装置,该消息推送装置可以实现为服务端或服务端的一部分,其中,服务端例如为IM服务端。该消息推送装置包括但不限于:第一获取单元51、处理单元52、第二获取单元53和推送单元54。
第一获取单元51,用于获取目标群的相关消息;
处理单元52,用于基于相关消息生成群变更事件,并将群变更事件保存到数据缓冲通道中;
第二获取单元53,用于满足预设推送条件时,从数据缓冲通道中获取目标群对应的至少一个群变更事件;
推送单元54,用于将至少一个群变更事件推送到目标群中的各成员的客户端。
在一些实施例中,该消息推送装置还包括图5中未示出的检测单元,用于检测目标群是否为成员数量超过预设值的群组;处理单元52在检测单元检测到目标群的成员数量超过预设值时,基于相关消息生成群变更事件,并将群变更事件保存到数据缓冲通道中。第二获取单元53在检测单元检测到目标群的成员数量超过预设值时且满足预设推送条件时,从数据缓冲通道中获取目标群对应的至少一个群变更事件。推送单元54在检测单元检测到目标群的成员数量超过预设值时,将至少一个群变更事件推送到目标群中的各成员的客户端。另外,推送单元54在检测单元检测到目标群的成员数量未超过预设值时,直接通过推送通道向目标群中所有成员的IM客户端推送目标群的相关消息。
在一些实施例中,目标群的相关消息包括:向目标群发送的消息和/或群信息变更消息。处理单元52基于向目标群发送的消息,生成新消息事件;和/或,基于群信息变更消息,生成至少一个群信息项变更事件。
在一些实施例中,处理单元52将新消息事件保存到第一数据缓冲通道中,并将至少一个群信息项变更事件保存到第二数据缓冲通道中。第二获取单元53在满足预设推送条件时,从第一数据缓冲通道中获取目标群对应的至少一个新消息事件,和/或从第二数据缓冲通道中获取目标群对应的至少一个群信息项变更事件。推送单元54将获取的至少一个新消息事件和/或至少一个群信息项变更事件推送到目标群中的各成员的客户端。
在一些实施例中,推送单元54聚合至少一个群变更事件得到目标事件;将目标事件推送至目标群中的各成员的客户端。
在一些实施例中,推送单元54针对至少一个新消息事件,从消息服务获取目标群的最新消息,生成包括最新消息及其对应的上下文信息的目标事件;和/或,针对至少一个群信息项变更事件,确定目标群的最新状态,生成包括最新状态的目标事件。
在一些实施例中,预设推送条件包括:当前时间与上一次推送的时间间隔大于或等于预设的时间间隔阈值。
以上各实施例公开的消息推送装置的技术细节可以参考消息推送方法各实施例的描述,为避免重复,不再赘述。
在一些实施例中,消息推送装置中各单元的划分仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如消息推送装置中的至少两个单元可以实现为一个单元;消息推送装置中的各单元也可以划分为多个子单元。可以理解的是,各个单元或子单元能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。
图6是本公开实施例提供的一种包括至少一个计算装置和至少一个存储指令的存储装置的系统的示例性框图。在一些实施例中,该系统可用于大数据处理,至少一个计算装置和至少一个存储装置可以为分布式部署,使该系统为分布式数据处理集群。
如图6所示,系统包括:至少一个计算装置61、至少一个存储指令的存储装置62。可以理解,本实施例中的存储装置62可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
在一些实施方式中,存储装置62存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统和应用程序。
其中,操作系统,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础任务以及处理基于硬件的任务。应用程序,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用任务。实现本公开实施例提供的消息推送方法的程序可以包含在应用程序中。
在本公开实施例中,至少一个计算装置61通过调用至少一个存储装置62存储的程序或指令,具体的,可以是应用程序中存储的程序或指令,至少一个计算装置61用于执行本公开实施例提供的消息推送方法各实施例的步骤。
本公开实施例提供的消息推送方法可以应用于计算装置61中,或者由计算装置61实现。计算装置61可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过计算装置61中的硬件的集成逻辑电路或者软件形式的指令完成。上述的计算装置61可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本公开实施例提供的消息推送方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储装置62,计算装置61读取存储装置62中的信息,结合其硬件完成方法的步骤。
本公开实施例还提出一种计算机可读存储介质,所述计算机可读存储介质存储程序或指令,当所述程序或指令被至少一个计算装置运行时,使至少一个计算装置执行如消息推送方法各实施例的步骤,为避免重复描述,在此不再赘述。其中,计算装置可以为图6所示的计算装置61。在一些实施例中,计算机可读存储介质为非暂态计算机可读存储介质。
本公开实施例还提出一种计算机程序产品,其中,该计算机程序产品包括计算机程序,该计算机程序存储在非暂态计算机可读存储介质中,计算机的至少一个处理器从存储介质读取并执行该计算机程序,使得计算机执行如消息推送方法各实施例的步骤,为避免重复描述,在此不再赘述。
其中,计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。
本领域的技术人员能够理解,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
虽然结合附图描述了本公开的实施方式,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种消息推送方法,所述方法包括:
获取目标群的相关消息;
基于所述相关消息生成群变更事件,并将所述群变更事件保存到数据缓冲通道中;
满足预设推送条件时,从所述数据缓冲通道中获取所述目标群对应的至少一个群变更事件;
将所述至少一个群变更事件推送到所述目标群中的各成员的客户端。
2.根据权利要求1所述的方法,其中,所述基于所述相关消息生成群变更事件之前,所述方法还包括:
检测所述目标群是否为成员数量超过预设值的群组;
当检测到所述目标群的成员数量超过预设值时,执行所述基于所述相关消息生成群变更事件的步骤及其后续步骤。
3.根据权利要求1所述的方法,其中,
所述相关消息包括:向所述目标群发送的消息和/或群信息变更消息;
所述基于所述相关消息生成群变更事件包括:基于所述向所述目标群发送的消息,生成新消息事件;和/或,基于所述群信息变更消息,生成至少一个群信息项变更事件。
4.根据权利要求3所述的方法,其中,
所述将所述群变更事件保存到数据缓冲通道中包括:将所述新消息事件保存到第一数据缓冲通道中,并将所述至少一个群信息项变更事件保存到第二数据缓冲通道中;
所述从所述数据缓冲通道中获取所述目标群对应的至少一个群变更事件包括:从所述第一数据缓冲通道中获取所述目标群对应的至少一个新消息事件,和/或从所述第二数据缓冲通道中获取所述目标群对应的至少一个群信息项变更事件;
所述将所述至少一个群变更事件推送到所述目标群中的各成员的客户端包括:将获取的所述至少一个新消息事件和/或所述至少一个群信息项变更事件推送到所述目标群中的各成员的客户端。
5.根据权利要求3所述的方法,其中,所述将所述至少一个群变更事件推送到所述目标群中的各成员的客户端包括:
聚合所述至少一个群变更事件得到目标事件;
将所述目标事件推送至所述目标群中的各成员的客户端。
6.根据权利要求5所述的方法,其中,所述聚合所述至少一个群变更事件得到目标事件包括:
针对至少一个新消息事件,从消息服务获取所述目标群的最新消息,生成包括所述最新消息及其对应的上下文信息的目标事件;
和/或,
针对至少一个群信息项变更事件,确定所述目标群的最新状态,生成包括所述最新状态的目标事件。
7.根据权利要求1所述的方法,其中,所述预设推送条件包括:当前时间与上一次推送的时间间隔大于或等于预设的时间间隔阈值。
8.一种消息推送装置,所述装置包括:
第一获取单元,用于获取目标群的相关消息;
处理单元,用于基于所述相关消息生成群变更事件,并将所述群变更事件保存到数据缓冲通道中;
第二获取单元,用于满足预设推送条件时,从所述数据缓冲通道中获取所述目标群对应的至少一个群变更事件;
推送单元,用于将所述至少一个群变更事件推送到所述目标群中的各成员的客户端。
9.一种包括至少一个计算装置和至少一个存储指令的存储装置的系统,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行如权利要求1至7任一项所述消息推送方法的步骤。
10.一种计算机可读存储介质,其中,所述计算机可读存储介质存储程序或指令,当所述程序或指令被至少一个计算装置运行时,使至少一个计算装置执行如权利要求1至7任一项所述消息推送方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111165886.1A CN113905002A (zh) | 2021-09-30 | 2021-09-30 | 一种消息推送方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111165886.1A CN113905002A (zh) | 2021-09-30 | 2021-09-30 | 一种消息推送方法、装置、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113905002A true CN113905002A (zh) | 2022-01-07 |
Family
ID=79190031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111165886.1A Pending CN113905002A (zh) | 2021-09-30 | 2021-09-30 | 一种消息推送方法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113905002A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2520089A1 (en) * | 2005-03-23 | 2006-09-23 | Research In Motion Limited | System and method for processing syndication information for a mobile device |
CN102299810A (zh) * | 2011-09-29 | 2011-12-28 | 北京新媒传信科技有限公司 | 群组变更事件的通知方法和系统 |
CN103297395A (zh) * | 2012-02-24 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 一种互联网业务的实现方法、系统以及装置 |
CN103518350A (zh) * | 2012-05-14 | 2014-01-15 | 华为技术有限公司 | 群组通信的方法、系统、群组服务器和群组成员设备 |
CN106357503A (zh) * | 2016-08-19 | 2017-01-25 | 百度在线网络技术(北京)有限公司 | 消息处理方法与即时通讯服务器 |
US20180019961A1 (en) * | 2015-12-18 | 2018-01-18 | Tencent Technology (Shenzhen) Company Limited | Message processing method, processing server, terminal, and storage medium |
CN109600240A (zh) * | 2018-12-21 | 2019-04-09 | 北京云中融信网络科技有限公司 | 群通信方法和装置 |
CN109672543A (zh) * | 2019-01-08 | 2019-04-23 | 平安科技(深圳)有限公司 | 群组事件管理方法及装置 |
CN110213156A (zh) * | 2019-05-07 | 2019-09-06 | 中电莱斯信息系统有限公司 | 一种跨中心群组即时通信方法和系统 |
CN110311855A (zh) * | 2019-06-25 | 2019-10-08 | 广州虎牙科技有限公司 | 用户消息处理方法、装置、电子设备及存储介质 |
CN112311656A (zh) * | 2020-02-14 | 2021-02-02 | 北京字节跳动网络技术有限公司 | 消息聚合、展示方法、装置、电子设备和计算机可读介质 |
-
2021
- 2021-09-30 CN CN202111165886.1A patent/CN113905002A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2520089A1 (en) * | 2005-03-23 | 2006-09-23 | Research In Motion Limited | System and method for processing syndication information for a mobile device |
CN102299810A (zh) * | 2011-09-29 | 2011-12-28 | 北京新媒传信科技有限公司 | 群组变更事件的通知方法和系统 |
CN103297395A (zh) * | 2012-02-24 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 一种互联网业务的实现方法、系统以及装置 |
CN103518350A (zh) * | 2012-05-14 | 2014-01-15 | 华为技术有限公司 | 群组通信的方法、系统、群组服务器和群组成员设备 |
US20180019961A1 (en) * | 2015-12-18 | 2018-01-18 | Tencent Technology (Shenzhen) Company Limited | Message processing method, processing server, terminal, and storage medium |
CN106357503A (zh) * | 2016-08-19 | 2017-01-25 | 百度在线网络技术(北京)有限公司 | 消息处理方法与即时通讯服务器 |
CN109600240A (zh) * | 2018-12-21 | 2019-04-09 | 北京云中融信网络科技有限公司 | 群通信方法和装置 |
CN109672543A (zh) * | 2019-01-08 | 2019-04-23 | 平安科技(深圳)有限公司 | 群组事件管理方法及装置 |
CN110213156A (zh) * | 2019-05-07 | 2019-09-06 | 中电莱斯信息系统有限公司 | 一种跨中心群组即时通信方法和系统 |
CN110311855A (zh) * | 2019-06-25 | 2019-10-08 | 广州虎牙科技有限公司 | 用户消息处理方法、装置、电子设备及存储介质 |
CN112311656A (zh) * | 2020-02-14 | 2021-02-02 | 北京字节跳动网络技术有限公司 | 消息聚合、展示方法、装置、电子设备和计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106100902B (zh) | 云端指标监控方法和装置 | |
CN109445965B (zh) | 由Redis和MySQL实现的消息处理方法和设备 | |
WO2017211226A1 (zh) | 展示媒体文件的方法、终端和存储介质 | |
CN110300067B (zh) | 队列调整方法、装置、设备及计算机可读存储介质 | |
US20140164409A1 (en) | Generating And Using Temporal Data Partition Revisions | |
CN111163159A (zh) | 消息订阅方法、装置、服务器及计算机可读存储介质 | |
US20180260298A1 (en) | Method and Device for Reporting Mobile Terminal Behaviors | |
WO2023051572A1 (zh) | 一种群消息处理方法、装置、系统及存储介质 | |
CN111159233B (zh) | 分布式缓存方法、系统、计算机设备以及存储介质 | |
CN110727507B (zh) | 一种消息的处理方法、装置、计算机设备和存储介质 | |
CN109495543B (zh) | 一种ceph集群中监视器的管理方法及装置 | |
CN109766198B (zh) | 流式处理方法、装置、设备及计算机可读存储介质 | |
CN107346270B (zh) | 基于实时计算的基数估计的方法和系统 | |
US8510426B2 (en) | Communication and coordination between web services in a cloud-based computing environment | |
CN111026606A (zh) | 基于hystrix熔断器监控的报警方法、装置及计算机设备 | |
CN114048201A (zh) | 一种基于分布式流计算引擎Flink的关键字段实时去重方法 | |
CN113923180B (zh) | 话题群消息推送方法、接收方法、装置、系统及存储介质 | |
CN113905002A (zh) | 一种消息推送方法、装置、系统及存储介质 | |
CN111475315A (zh) | 服务器及订阅通知推送控制、执行方法 | |
CN109005465B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN113986942B (zh) | 一种基于人机对话的消息队列管理方法及装置 | |
CN110955669B (zh) | 基于事件与内存数据库的前后端数据一致性方法及系统 | |
CN110633165B (zh) | 故障处理方法、装置、系统服务器及计算机可读存储介质 | |
CN112597354A (zh) | 一种提供配置参数的方法、装置、系统及存储介质 | |
CN111107019A (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 |