消息推送方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:27576390 阅读:36 留言:0更新日期:2021-03-09 22:26
本申请涉及一种消息推送方法、装置、计算机设备和存储介质。所述方法包括:同时执行第一处理逻辑和第二处理逻辑;其中,所述第一处理逻辑的执行过程包括:在接收到分布式缓存发送的第一事件参数时,根据所述第一事件参数生成第一推送任务,将所述第一推送任务加入消息推送队列;所述第二处理逻辑的执行过程包括:在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,根据所述第二事件参数生成第二推送任务,将所述第二推送任务加入所述消息推送队列;根据所述消息推送队列进行消息推送。本申请实施例能够在服务节点和分布式缓存出现掉线状况时避免消息丢失,保证同步且及时的消息推送服务。且及时的消息推送服务。且及时的消息推送服务。

【技术实现步骤摘要】
消息推送方法、装置、计算机设备和存储介质


[0001]本申请涉及消息推送
,特别是涉及一种消息推送方法、装置、计算机设备和存储介质。

技术介绍

[0002]在分布式系统中实现消息的实时推送,由于推送服务为集群部署,所以会存在多个服务节点。各个服务节点无法同时向连接至该节点的客户端发送消息,导致不同客户端接收到新消息的时间不一致,同时导致了部分客户端中的消息推送不及时。为了协调这些服务节点同时向连接到本节点的客户端发送消息,通常会通过分布式缓存的发布订阅机制来实现服务节点间的事件通知。
[0003]然而,在实际情况中,服务节点和分布式缓存之间可能会掉线,服务节点在掉线后重连,会丢失掉线期间的事件,这会造成部分消息无法发送给连接至该服务节点的客户端。

技术实现思路

[0004]本专利技术针对现有技术的缺点,提供了一种消息推送方法、装置、计算机设备和存储介质。本专利技术实施例能够实现在服务节点和分布式缓存出现掉线状况时避免消息丢失,保证同步且及时的消息推送服务。
[0005]本专利技术根据第一方面提供了消息推送方法,在一个实施例中,该方法包括:
[0006]同时执行第一处理逻辑和第二处理逻辑;其中,第一处理逻辑的执行过程包括:在接收到分布式缓存发送的第一事件参数时,根据第一事件参数生成第一推送任务,将第一推送任务加入消息推送队列;第二处理逻辑的执行过程包括:在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,根据第二事件参数生成第二推送任务,将第二推送任务加入所述消息推送队列;
[0007]根据消息推送队列进行消息推送。
[0008]本专利技术根据第二方面提供了一种消息推送装置,在一个实施例中,该装置包括:
[0009]任务模块,用于同时执行第一处理逻辑和第二处理逻辑;其中,第一处理逻辑的执行过程包括:在接收到分布式缓存发送的第一事件参数时,根据第一事件参数生成第一推送任务,将第一推送任务加入消息推送队列;第二处理逻辑的执行过程包括:在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,根据第二事件参数生成第二推送任务,将第二推送任务加入消息推送队列;
[0010]推送模块,用于根据消息推送队列进行消息推送。
[0011]本专利技术根据第三方面提供了一种消息推送计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法实施例中的步骤。
[0012]本专利技术根据第四方面提供了一种消息推送计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法实施例中的步骤。
[0013]上述消息推送方法、装置、计算机设备和存储介质的实施例中,在第一处理逻辑中通过分布式缓存接收第一事件参数并生成第一推送任务,实现了多服务节点间的事件通知和数据传递,能够实时接收消息参数,可实现消息的及时推送与更新;同时执行第一处理逻辑和第二处理逻辑,在第二处理逻辑的执行过程中利用预先确定的消息主题集合获取第二事件参数并生成第二推送任务,有效避免了推送服务节点掉线期间可能产生的消息丢失,保证所有消息的及时推送。
附图说明
[0014]图1为一个实施例中消息推送方法的应用环境图;
[0015]图2为一个实施例中消息推送方法的流程示意图;
[0016]图3为一个实施例中消息推送装置的结构框图;
[0017]图4为一个实施例中计算机设备的内部结构图。
具体实施方式
[0018]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0019]本申请实施例提供的消息推送方法,可以应用于推送服务集群中的任一个推送服务节点。如图1所示,消息生成服务节点102与分布式缓存连接,分布式缓存与多个推送服务节点(包括推送服务节点104、推送服务节点106和推送服务节点108)连接,每个推送服务节点均与各自对应的客户端相连。
[0020]在一个实施例中,如图2所示,本申请提供了一种消息推送方法,以下以该方法应用于图1中的任一个推送服务节点(下文称为本推送服务节点)为例进行说明。该方法包括以下步骤:
[0021]步骤202:同时执行第一处理逻辑和第二处理逻辑;其中,第一处理逻辑的执行过程包括:在接收到分布式缓存发送的第一事件参数时,根据第一事件参数生成第一推送任务,将第一推送任务加入消息推送队列;第二处理逻辑的执行过程包括:在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,根据第二事件参数生成第二推送任务,将第二推送任务加入所述消息推送队列。
[0022]其中,本推送服务节点从分布式缓存接收的第一事件参数具体对应一个消息,该第一事件参数为该消息的属性信息,可以包括该消息的消息序号和主题;第一推送任务为对应于第一事件参数的消息的推送任务;本推送服务节点在满足预设触发条件时根据预先确定的消息主题集合获得的第二事件参数也具体对应一个消息,该第二事件参数为该消息的属性信息,可以包括该消息的消息序号和主题;第二推送任务为对应于第二事件参数的消息的推送任务;预先确定的消息主题集合为根据预先规则确定的集合,该集合中有一个或多个元素,每个元素均为消息的主题,比如,“在线文档A”、“在线文档B”、“微信群聊A”、“微信群聊B”等,一个主题可以对应多个消息,一个主题所对应的多个消息可以分别具有不同的消息序号,一个主题所对应的多个消息的消息序号可以按照消息生成时间递增。
[0023]具体地,本推送服务节点同时执行第一处理逻辑和第二处理逻辑。在执行第一处
理逻辑时,本推送服务节点通过分布式缓存接收第一事件参数,并根据该第一事件参数创建对应于该第一事件参数的消息的推送任务,即第一推送任务,然后将该第一推送任务加入本推送服务节点中的消息推送队列。在执行第二处理逻辑时,本推送服务节点在满足预设触发条件时获取第二事件参数,该第二事件参数是根据预先确定的消息主题集合确定的,比如,本推送服务节点可以对于消息主题集合中的每个主题获取一组第二事件参数,该一组第二事件参数具体对应一个消息,可以为该消息的消息主题和消息序号;接着,本推送服务节点生成对应于第二事件参数的消息的推送任务,即第二推送任务,并将该第二推送任务加入本推送服务节点中的消息推送队列。
[0024]步骤204:根据消息推送队列进行消息推送。
[0025]具体地,本推送服务节点按照任务生成时间早晚依次执行消息推送队列中的各个任务,将每个任务对应的消息推送给连接至本推送服务节点的与该任务相关的客户端。其中,若客户端关注的主题与该任务对应的消息的主题相同,则确定客户端是与该任务相关的客户端。
[0026]在本实施例中,在第一处理逻辑中通过分布式缓存接收第一事件参数并生成第一推送任务,实现了多服务节点间的事件通知和数据传递,能够实时接收消息参数,可实现消息的及时本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种消息推送方法,其特征在于,所述方法包括:同时执行第一处理逻辑和第二处理逻辑;其中,所述第一处理逻辑的执行过程包括:在接收到分布式缓存发送的第一事件参数时,根据所述第一事件参数生成第一推送任务,将所述第一推送任务加入消息推送队列;所述第二处理逻辑的执行过程包括:在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,根据所述第二事件参数生成第二推送任务,将所述第二推送任务加入所述消息推送队列;根据所述消息推送队列进行消息推送。2.根据权利要求1所述的方法,其特征在于,所述方法应用于推送服务集群中的任一个推送服务节点,所述推送服务集群包括多个推送服务节点;所述第一事件参数是所述分布式缓存在接收到消息生成服务节点发布的第一消息生成事件后发送给本推送服务节点的;其中,所述第一消息生成事件对应于所述第一事件参数,所述消息生成服务节点在发布所述第一消息生成事件时将所述第一消息生成事件对应的消息内容以及所述第一事件参数发送给消息存储节点。3.根据权利要求2所述的方法,其特征在于,所述预先确定的消息主题集合为全量主题集合;在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,包括:在满足预设触发条件时执行预设定时任务;其中,所述预设定时任务的执行过程包括:根据所述全量主题集合获得第二事件参数;优选地,所述根据全量主题集合获得第二事件参数包括:对于所述全量主题集合中的任一主题,在所述消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第二事件参数。4.根据权利要求2所述的方法,其特征在于,所述预先确定的消息主题集合包括热点主题集合和全量主题集合;在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,包括:在满足第一触发条件时执行第一定时任务;其中,所述第一定时任务的执行过程包括:根据所述热点主题集合获得第三事件参数;在满足第二触发条件时执行第二定时任务;其中,所述第二定时任务的执行过程包括:根据所述全量主题集合获得第四事件参数;优选地,所述根据所述热点主题集合获得第三事件参数包括:对于所述热点主题集合中的任一主题,在所述消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第三事件参数;所述根据所述全量主题集合获得第四事件参数包括:对于所述全量主题集合中的任一主题,在所述消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第四事件参数。5.根据权利要求3或4所述的方法,其特征在于,
所述全量主题集合的预先确定过程包括:接收连接至本推送服务节点的每个客户端发送的该客户端所关注的主题;将所有连接至本推送服务节点的客户端所关注的主题所组成的集合作为所述全量主题集合;所述热点主题集合的预先确定过程包括:步骤S1:通过分布式缓存发布第二新消息生成事件;步骤S2:将所述第二新消息生成事件对应的主题加入初始主题集合;步骤S3:检查所述初始主题集合...

【专利技术属性】
技术研发人员:唐东王刚徐恒钱伟葛振宇
申请(专利权)人:苏宁云计算有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1