CN112448883A - 消息推送方法、装置、计算机设备和存储介质 - Google Patents
消息推送方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112448883A CN112448883A CN202011097078.1A CN202011097078A CN112448883A CN 112448883 A CN112448883 A CN 112448883A CN 202011097078 A CN202011097078 A CN 202011097078A CN 112448883 A CN112448883 A CN 112448883A
- Authority
- CN
- China
- Prior art keywords
- message
- topic
- pushing
- pushed
- task
- 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.)
- Granted
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/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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为一个实施例中消息推送方法的流程示意图;
图3为一个实施例中消息推送装置的结构框图;
图4为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的消息推送方法,可以应用于推送服务集群中的任一个推送服务节点。如图1所示,消息生成服务节点102与分布式缓存连接,分布式缓存与多个推送服务节点(包括推送服务节点104、推送服务节点106和推送服务节点108)连接,每个推送服务节点均与各自对应的客户端相连。
在一个实施例中,如图2所示,本申请提供了一种消息推送方法,以下以该方法应用于图1中的任一个推送服务节点(下文称为本推送服务节点)为例进行说明。该方法包括以下步骤:
步骤202:同时执行第一处理逻辑和第二处理逻辑;其中,第一处理逻辑的执行过程包括:在接收到分布式缓存发送的第一事件参数时,根据第一事件参数生成第一推送任务,将第一推送任务加入消息推送队列;第二处理逻辑的执行过程包括:在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,根据第二事件参数生成第二推送任务,将第二推送任务加入所述消息推送队列。
其中,本推送服务节点从分布式缓存接收的第一事件参数具体对应一个消息,该第一事件参数为该消息的属性信息,可以包括该消息的消息序号和主题;第一推送任务为对应于第一事件参数的消息的推送任务;本推送服务节点在满足预设触发条件时根据预先确定的消息主题集合获得的第二事件参数也具体对应一个消息,该第二事件参数为该消息的属性信息,可以包括该消息的消息序号和主题;第二推送任务为对应于第二事件参数的消息的推送任务;预先确定的消息主题集合为根据预先规则确定的集合,该集合中有一个或多个元素,每个元素均为消息的主题,比如,“在线文档A”、“在线文档B”、“微信群聊A”、“微信群聊B”等,一个主题可以对应多个消息,一个主题所对应的多个消息可以分别具有不同的消息序号,一个主题所对应的多个消息的消息序号可以按照消息生成时间递增。
具体地,本推送服务节点同时执行第一处理逻辑和第二处理逻辑。在执行第一处理逻辑时,本推送服务节点通过分布式缓存接收第一事件参数,并根据该第一事件参数创建对应于该第一事件参数的消息的推送任务,即第一推送任务,然后将该第一推送任务加入本推送服务节点中的消息推送队列。在执行第二处理逻辑时,本推送服务节点在满足预设触发条件时获取第二事件参数,该第二事件参数是根据预先确定的消息主题集合确定的,比如,本推送服务节点可以对于消息主题集合中的每个主题获取一组第二事件参数,该一组第二事件参数具体对应一个消息,可以为该消息的消息主题和消息序号;接着,本推送服务节点生成对应于第二事件参数的消息的推送任务,即第二推送任务,并将该第二推送任务加入本推送服务节点中的消息推送队列。
步骤204:根据消息推送队列进行消息推送。
具体地,本推送服务节点按照任务生成时间早晚依次执行消息推送队列中的各个任务,将每个任务对应的消息推送给连接至本推送服务节点的与该任务相关的客户端。其中,若客户端关注的主题与该任务对应的消息的主题相同,则确定客户端是与该任务相关的客户端。
在本实施例中,在第一处理逻辑中通过分布式缓存接收第一事件参数并生成第一推送任务,实现了多服务节点间的事件通知和数据传递,能够实时接收消息参数,可实现消息的及时推送与更新;同时执行第一处理逻辑和第二处理逻辑,在第二处理逻辑的执行过程中利用预先确定的消息主题集合获取第二事件参数并生成第二推送任务,有效避免了推送服务节点掉线期间可能产生的消息丢失,保证所有消息的及时推送。
在一个实施例中,第一事件参数是分布式缓存在接收到消息生成服务节点发布的第一消息生成事件后发送给本推送服务节点的;其中,第一消息生成事件对应于第一事件参数,消息生成服务节点在发布第一消息生成事件时将第一消息生成事件对应的消息内容以及第一事件参数发送给消息存储节点。
其中,第一消息生成事件是消息生成服务节点通过分布式缓存发布的新消息生成事件;消息存储节点用于存储消息内容和其他消息数据(如消息序号、消息主题、消息生成时间),消息存储节点可以是缓存、数据库或者其他存储设备、存储介质等。进一步地,消息存储节点可以是独立的服务器,也可以部署在消息生成服务节点或者分布式缓存中。
具体地,本推送服务节点连接分布式缓存,订阅新消息生成事件,消息生成服务节点生成新消息后通过分布式缓存发布新消息生成事件,即第一消息生成事件,在此之后,本推送服务节点即通过分布式缓存接收与第一消息生成事件对应的第一事件参数。另外,消息生成服务节点在通过分布式缓存发布第一消息生成事件时,也将该第一消息生成事件对应的消息内容以及第一事件参数发送给消息存储节点,消息存储节点将消息生成服务节点发送的数据进行存储。在其中一个实施方式中,消息生成服务节点在将第一消息生成事件对应的消息内容发送给消息存储节点时,还将第一消息生成事件对应的消息的作者、生成时间等其他信息一并发送给消息存储节点。
在本实施例中,消息生成服务节点通过分布式缓存发布新消息生成事件,推送服务节点通过分布式缓存订阅新消息生成事件并实时接收消息参数,通过分布式缓存发布订阅机制实现了不同节点间的事件通知和消息数据的实时传输,使得推送服务节点能够主动并且实时进行消息推送。
在一个实施例中,预先确定的消息主题集合为全量主题集合;
上述的在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,包括:
在满足预设触发条件时执行预设定时任务;其中,所述预设定时任务的执行过程包括:根据全量主题集合获得第二事件参数。
其中,全量主题集合为所有连接至本推送服务节点的客户端所关注的主题的集合。
具体地,本推送服务节点在满足预设触发条件(比如每分钟触发一次)时执行预设定时任务,根据全量主题集合获得第二事件参数。比如,该定时任务可以设定为以分钟为单位执行。
在本实施例中,预设定时任务定时触发任务执行,对于在任何时间产生的消息都可实现及时推送,并且节约系统能耗。
在一个实施例中,上述的根据全量主题集合获得第二事件参数包括:
对于全量主题集合中的任一主题,在消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第二事件参数。
具体地,对于全量主题集合中的任一主题,本消息推送服务节点可以根据该主题的ID在消息存储节点中进行查询,获取该主题对应的消息序号中最大的数值,和该主题的ID一并作为一组第二事件参数。在其中一个实施方式中,消息存储节点包括缓存和数据库,本消息推送服务节点可以先在缓存中进行查询,若在缓存中没有查询到该主题的ID和对应的消息序号,再到数据库中根据该主题的ID进行查询。
在本实施例中,对于全量主题集合中的任一主题,在消息存储节点中查询该任一主题的最新消息序号并确定一组第二事件参数,保证了每个主题对应的消息的完整并且及时推送。
在一个实施例中,预先确定的消息主题集合包括热点主题集合和全量主题集合;
上述的在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,包括:
在满足第一触发条件时执行第一定时任务;其中,第一定时任务的执行过程包括:根据热点主题集合获得第三事件参数;
在满足第二触发条件时执行第二定时任务;其中,第二定时任务的执行过程包括:根据全量主题集合获得第四事件参数。
其中,热点主题集合为在预设时间范围内有消息更新的主题的集合,比如,可以将在一小时内有新消息生成的主题作为一个热点主题,所有热点主题组成的集合即位热点主题集合。
具体地,本推送服务节点在满足预设第一触发条件时执行第一定时任务,根据热点主题集合获得第三事件参数。比如,该定时任务可以设定为以秒为单位执行;本推送服务节点在满足预设第二触发条件时执行第二定时任务,根据全量主题集合获得第四事件参数。比如,该定时任务可以设定为以分钟为单位执行。
在本实施例中,设定了热点主题集合和全量主题集合,预设第一定时任务和第二定时任务定时触发任务执行,第一定时任务和第二定时任务的触发时间点和触发时间间隔(或触发频率)均可不同,可以根据具体情况进行设置,进一步地,为第一定时任务设置的触发频率要高于为第二定时任务设置的触发频率,对于在任何时间产生的消息都可实现及时推送,并且节约系统能耗。
在一个实施例中,上述的根据热点主题集合获得第三事件参数包括:
对于热点主题集合中的任一主题,在消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第三事件参数;
上述的根据全量主题集合获得第四事件参数包括:
对于全量主题集合中的任一主题,在消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第四事件参数。
具体地,对于热点主题集合中的任一主题,本消息推送服务节点可以根据该主题的ID在消息存储节点中进行查询,获取该主题对应的消息序号中最大的数值,和该主题的ID一并作为一组第三事件参数;同样的,对于全量主题集合中的任一主题,本消息推送服务节点可以根据该主题的ID在消息存储节点中进行查询,获取该主题对应的消息序号中最大的数值,和该主题的ID一并作为一组第四事件参数。在其中一个实施方式中,消息存储节点包括缓存和数据库,本消息推送服务节点可以先在缓存中进行查询,若在缓存中没有查询到该主题的ID和对应的消息序号,再到数据库中根据该主题的ID进行查询。
在本实施例中,对于热点主题集合中的任一主题,在消息存储节点中查询该任一主题的最新消息序号并确定一组第三事件参数;对于全量主题集合中的任一主题,在消息存储节点中查询该任一主题的最新消息序号并确定一组第四事件参数,保证了每个主题对应的消息的完整并且及时推送。
在一个实施例中,全量主题集合的预先确定过程包括:
接收连接至本推送服务节点的每个客户端发送的该客户端所关注的主题;
将所有连接至本推送服务节点的客户端所关注的主题所组成的集合作为全量主题集合。
具体地,每个连接至本推送服务节点的客户端均将该客户端关注的所有主题发送给本推送服务节点,本推送服务节点将由此接收到的所有主题组成的集合作为全量主题集合。
在本实施例中,将连接至本推送服务节点中的所有客户端所关注的主题的集合设定为全量主题集合,保证了连接至本推送服务节点中的各个客户端所关注的各个主题所对应的消息的完整并且及时推送。
在一个实施例中,热点主题集合的预先确定过程包括:
步骤S1:通过分布式缓存发布第二新消息生成事件;
步骤S2:将第二新消息生成事件对应的主题加入初始主题集合;
步骤S3:检查初始主题集合中的每个主题,若初始主题集合中的任一主题对应的消息的生成时间满足第一预设条件,将该任一主题移出初始主题集合;
步骤S4:将完成了步骤S3后得到的初始主题集合作为热点主题集合。
其中,初始主题集合为本步骤执行之前在预设时间范围(比如一小时内)内有消息更新的主题的集合。
具体地,在消息生成服务节点和推送服务集群合一的场景中,假设合一后的设备称为消息推送服务节点,那么消息推送服务节点在在通过分布式缓存发布第二消息生成事件(即通过分布式缓存发布的新消息生成事件)时将该第二新消息生成事件对应的主题加入初始主题集合;本消息推送服务节点可以定时触发任务对初始主题集合中的每个主题进行检查,若初始主题集合中的任一主题对应的消息的生成时间满足第一预设条件,将该任一主题移出初始主题集合,比如,第一预设条件可以是该任一主题所对应的消息的最晚生成时间与当前时间点之间的时间间隔大于一小时,那么若初始主题集合中的某一主题所对应的消息的最晚生成时间与当前时间点的时间间隔大于一小时,本消息推送服务节点会将该主题移出初始主题集合;在对初始主题集合中的每个主题进行检查并进行了相应的移除或者保留操作之后,当前时间点的初始主题集合即为热点主题集合。
在本实施例中,本消息推送服务节点在发布第二新消息生成事件时将第二新消息生成事件对应的主题作为一个热点主题,在消息生成服务和推送服务合一的场景中,由此维护热点主题集合,流程简洁,节约能耗。
在一个实施例中,热点主题集合的预先确定过程包括:
检查全量主题集合中的每个主题,若全量主题集合中的任一主题对应的消息的生成时间满足第二预设条件,将该任一主题作为一个预备主题;
将全量主题集合中的所有预备主题组成的集合作为热点主题集合。
其中,预备主题为热点主题集合的组成元素。
具体地,本消息推送服务节点对全量主题集合中的每个主题进行检查,若全量主题集合中的任一主题对应的消息的生成时间满足第二预设条件,将该任一主题作为一个预备主题,比如,该第二预设条件可以是该任一主题所对应的消息的最晚生成时间与当前时间点之间的时间间隔大小于一小时,那么若全量主题集合中的某一主题所对应的消息的最晚生成时间与当前时间点的时间间隔小于一小时,本消息推送服务节点会将该主题作为一个预备主题,全量主题集合中的所有预备主题即组成了热点主题集合。
在本实施例中,遍历全量主题集合,将全量主题集合中所有预备主题加入热点主题集合,得到全面的热点主题集合,有利于每个主题对应的消息的完整并且及时推送。
在一个实施例中,上述的根据消息推送队列进行消息推送包括:
从消息推送队列中获取最早放入消息推送队列的推送任务作为待推送任务;
将待推送任务对应的主题作为待推送主题;
若任一连接至本推送服务节点的客户端关注了待推送主题,将该任一连接至本推送服务节点的客户端作为一个待推送客户端;
根据待推送任务对应的任务参数向每个待推送客户端进行消息推送,若待推送任务为第一推送任务,该第一推送任务对应的第一事件参数即为待推送任务对应的任务参数,若待推送任务为第二推送任务,该第二推送任务对应的第二事件参数即为待推送任务对应的任务参数。
具体地,本推送服务节点按照加入队列的时间早晚依次执行消息推送队列中的每个推送任务,本推送服务节点首先获取最早放入消息推送队列的推送任务作为待推送任务,将该待推送任务的主题作为待推送主题;本推送服务节点将所有连接至本推送服务节点的客户端中每个关注了该待推送主题的客户端均作为一个待推送客户端;本推送服务节点分别向所有待推送客户端推送该待推送客户端对应的消息,进一步地,该待推送任务对应一组任务参数,若待推送任务为第一推送任务,该第一推送任务对应的第一事件参数即为待推送任务对应的任务参数,若待推送任务为第二推送任务,该第二推送任务对应的第二事件参数即为待推送任务对应的任务参数。在其中一个实施方式中,本推送服务节点连接有多个客户端,本推送服务节点分别用一个线程执行向一个客户端进行待推送任务对应的消息的推送,各个客户端对应的线程同时执行,各个客户端对应的线程组成一个线程池。
在本实施例中,对于任一连接至本推送服务节点的客户端,按照消息推送队列向该客户端进行消息推送,保证了各个客户端的消息及时推送。
在一个实施例中,上述的根据待推送任务对应的任务参数向每个待推送客户端进行消息推送包括:
根据待推送任务对应的任务参数确定第一消息序号;
确定该每个待推送客户端的对应于待推送主题的最新消息序号,并将该每个待推送客户端的对应于待推送主题的最新消息序号作为第二消息序号;
根据待推送主题、第一消息序号和第二消息序号向该每个待推送客户端进行消息推送。
其中,第一消息序号具体对应于一个消息,该消息的消息主题为待推送主题;第二消息序号具体对应于一个消息,该消息的消息主题为待推送主题;该每个待推送客户端的对应于待推送主题的最新消息序号为该每个待推送客户端的对应于待推送主题的消息中生成时间最晚的消息的消息序号。
具体地,本推送服务节点将待推送任务对应的消息的消息序号作为第一消息序号;对于任一待推送客户端,本推送服务节点通过该待推送客户端与本推送服务节点的连接确定该待推送客户端的对应于待推送主题的最新消息序号,并将其作为第二消息序号;在确定了第一消息序号和第二消息序号后,本推送服务节点利用该第一消息序号、第二消息序号和待推送主题向待推送客户端进行消息推送。
在本实施例中,根据消息序号具体执行消息推送任务,避免了消息重复推送,减小了不必要的系统资源耗费。
在一个实施例中,上述的根据待推送主题、第一消息序号和第二消息序号向该每个待推送客户端进行消息推送包括:
确定待推送序号;
根据所述待推送主题和所述待推送序号从所述消息存储节点获取消息内容;
将所述消息内容发送给该每个所述待推送客户端;
所述待推送序号的确定过程包括:从小到大依次取大于所述第二消息序号并且不大于所述第一消息序号范围内的每个整数作为待推送序号。
具体地,本推送服务节点从小到大依次取大于第二消息序号并且不大于第一消息序号范围内的每个整数作为待推送序号,在确定了一个待推送序号后,根据待推送主题和该待推送序号在消息存储节点中进行查询并获取相应的消息内容,然后将该消息内容发送给该每个待推送客户端。
在本实施例中,依次取大于第二消息序号并且不大于第一消息序号范围内的每个整数作为一个待推送序号,进行消息推送,保证了待推送主题对应的每个消息都能推送给待推送客户端,避免了消息丢失。
在一个示例性例子,假设每一个在线文档(如word文档、excel文档等)对应上述实施例中的主题,每个多人编辑窗口(以下简称窗口)即为一个客户端,每次编辑产生一条文档更新消息,一个小时内被编辑过的文档为热点文档(即上述实施例中的热点主题)。每一条文档更新消息产生后,推送服务会将该文档更新消息推送到所有打开该文档的窗口,这样所有的窗口就能立刻看到他人编辑的内容。
具体地,每个推送服务节点启动后连接到分布式缓存,订阅新消息生成事件。假如某个用户打开某一个在线文档后,编辑了该文档,用户终端(如手机或电脑等计算设备)会向消息生成服务节点发送编辑请求,生成消息服务收到该编辑请求后,根据用户编辑的内容生成一条文档更新消息,之后通过分布式缓存发布新消息事件,以及将该文档更新消息存储到消息存储节点。其中,分布式缓存接收到该新消息事件后,向各推送服务节点(或该事件相关的推送服务节点)发送新消息事件。
推送服务节点收到新消息事件后,根据该文档更新消息中的文档ID和消息序号创建一个推送任务,放入消息推送队列。同时推送服务节点上的第一定时任务定时触发(比如间隔1秒执行1次)后根据热点文档集合生成推送任务并将推送任务放入消息推送队列中、以及第二定时任务定时触发(比如间隔10分钟执行1次)后根据全量文档集合生成推送任务并将推送任务放入消息推送队列中。
消息推送队列中推送任务的执行由两个线程池来完成。第一个推送线程池负责将基于文档的推送任务拆分成基于客户端连接的推送子任务。比如文档A被100个用户打开着,每个用户打开一个窗口,该100个用户中有50个用户的窗口连接到了推送服务节点1,则文档A的一个推送任务在推送服务节点1上会被拆分成50个推送子任务。推送子任务由第二个线程池来执行,负责将各个推送子任务对应的更新消息推送到打开文档的窗口。这样能保证一个文档在更新消息产生之后能够被迅速地推送到所有打开这个文档的客户端。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种消息推送装置,包括任务模块和推送模块,其中:
任务模块302,用于同时执行第一处理逻辑和第二处理逻辑;其中,第一处理逻辑的执行过程包括:在接收到分布式缓存发送的第一事件参数时,根据第一事件参数生成第一推送任务,将第一推送任务加入消息推送队列;第二处理逻辑的执行过程包括:在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,根据第二事件参数生成第二推送任务,将第二推送任务加入消息推送队列;
推送模块304,用于根据消息推送队列进行消息推送。
在一个实施例中,上述的任务模块302可以包括:
第一获取单元(图中未示出),用于对于全量主题集合中的任一主题,在消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第二事件参数。
在一个实施例中,上述的任务模块302可以包括:
第二获取单元(图中未示出),用于对于热点主题集合中的任一主题,在消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第三事件参数。
在一个实施例中,上述的任务模块302可以包括:
第三获取单元(图中未示出),用于对于全量主题集合中的任一主题,在消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第四事件参数。
在一个实施例中,上述的任务模块302可以包括:
接收单元(图中未示出),用于接收连接至本推送服务节点的每个客户端发送的该客户端所关注的主题;
第一确定单元(图中未示出),用于将所有连接至本推送服务节点的客户端所关注的主题所组成的集合作为全量主题集合
在一个实施例中,上述的任务模块302可以包括:
检查单元(图中未示出),用于检查全量主题集合中的每个主题,若全量主题集合中的任一主题对应的消息的生成时间满足第二预设条件,将该任一主题作为一个预备主题;
第二确定单元(图中未示出),用于将全量主题集合中的所有预备主题组成的集合作为热点主题集合。
在一个实施例中,上述的推送模块304可以包括:
第三确定单元(图中未示出),用于从消息推送队列中获取最早放入消息推送队列的推送任务作为待推送任务;
第四确定单元(图中未示出),用于将待推送任务对应的主题作为待推送主题;
第五确定单元(图中未示出),用于若任一连接至本推送服务节点的客户端关注了待推送主题,将该任一连接至本推送服务节点的客户端作为一个待推送客户端;
第一推送单元(图中未示出),用于根据待推送任务对应的任务参数向每个待推送客户端进行消息推送,若待推送任务为第一推送任务,该第一推送任务对应的第一事件参数即为待推送任务对应的任务参数,若待推送任务为第二推送任务,该第二推送任务对应的第二事件参数即为待推送任务对应的任务参数。
在一个实施例中,上述的第一推送单元可以包括:
第六确定单元(图中未示出),用于根据待推送任务对应的任务参数确定第一消息序号;
第七确定单元(图中未示出),用于确定该每个待推送客户端的对应于待推送主题的最新消息序号,并将该每个待推送客户端的对应于待推送主题的最新消息序号作为第二消息序号;
第二推送单元(图中未示出),根据待推送主题、第一消息序号和第二消息序号向该每个待推送客户端进行消息推送。
在一个实施例中,上述的第二推送单元可以包括:
第八确定单元(图中未示出),用于确定待推送序号;
第四获取单元(图中未示出),用于根据待推送主题和待推送序号从消息存储节点获取消息内容;
发送单元(图中未示出),用于将消息内容发送给该每个待推送客户端。
在一个实施例中,上述的第八确定单元可以包括:
第九确定单元(图中未示出),用于从小到大依次取大于第二消息序号并且不大于第一消息序号范围内的每个整数作为待推送序号。
关于消息推送装置的具体限定可以参见上文中对于消息推送方法的限定,在此不再赘述。上述消息推送装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储消息推送数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种消息推送方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
同时执行第一处理逻辑和第二处理逻辑;其中,第一处理逻辑的执行过程包括:在接收到分布式缓存发送的第一事件参数时,根据第一事件参数生成第一推送任务,将第一推送任务加入消息推送队列;第二处理逻辑的执行过程包括:在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,根据第二事件参数生成第二推送任务,将第二推送任务加入所述消息推送队列;
根据消息推送队列进行消息推送。
在一个实施例中,预先确定的消息主题集合为全量主题集合,处理器执行计算机程序实现在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数时还具体实现以下步骤:在满足预设触发条件时执行预设定时任务;其中,所述预设定时任务的执行过程包括:根据全量主题集合获得第二事件参数。
在一个实施例中,处理器执行计算机程序实现根据全量主题集合获得第二事件参数时还具体实现以下步骤:对于全量主题集合中的任一主题,在消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第二事件参数。
在一个实施例中,预先确定的消息主题集合包括热点主题集合和全量主题集合,处理器执行计算机程序实现在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数时还具体实现以下步骤:在满足第一触发条件时执行第一定时任务;其中,第一定时任务的执行过程包括:根据热点主题集合获得第三事件参数;在满足第二触发条件时执行第二定时任务;其中,第二定时任务的执行过程包括:根据全量主题集合获得第四事件参数。
在一个实施例中,处理器执行计算机程序实现根据热点主题集合获得第三事件参数时还具体实现以下步骤:对于热点主题集合中的任一主题,在消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第三事件参数。
在一个实施例中,处理器执行计算机程序实现根据全量主题集合获得第四事件参数时还具体实现以下步骤:对于全量主题集合中的任一主题,在消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第四事件参数。
在一个实施例中,处理器执行计算机程序实现全量主题集合的预先确定时还具体实现以下步骤:接收连接至本推送服务节点的每个客户端发送的该客户端所关注的主题;将所有连接至本推送服务节点的客户端所关注的主题所组成的集合作为全量主题集合。
在一个实施例中,处理器执行计算机程序实现热点主题集合的预先确定时还具体实现以下步骤:检查全量主题集合中的每个主题,若全量主题集合中的任一主题对应的消息的生成时间满足第二预设条件,将该任一主题作为一个预备主题;将全量主题集合中的所有预备主题组成的集合作为热点主题集合。
在一个实施例中,处理器执行计算机程序实现根据消息推送队列进行消息推送时还具体实现以下步骤:从消息推送队列中获取最早放入消息推送队列的推送任务作为待推送任务;将待推送任务对应的主题作为待推送主题;若任一连接至本推送服务节点的客户端关注了待推送主题,将该任一连接至本推送服务节点的客户端作为一个待推送客户端;根据待推送任务对应的任务参数向每个待推送客户端进行消息推送,若待推送任务为第一推送任务,该第一推送任务对应的第一事件参数即为待推送任务对应的任务参数,若待推送任务为第二推送任务,该第二推送任务对应的第二事件参数即为待推送任务对应的任务参数。
在一个实施例中,处理器执行计算机程序实现根据待推送任务对应的任务参数向每个待推送客户端进行消息推送时还具体实现以下步骤:根据待推送任务对应的任务参数确定第一消息序号;确定该每个待推送客户端的对应于待推送主题的最新消息序号,并将该每个待推送客户端的对应于待推送主题的最新消息序号作为第二消息序号;根据待推送主题、第一消息序号和第二消息序号向该每个待推送客户端进行消息推送。
在一个实施例中,处理器执行计算机程序实现根据待推送主题、第一消息序号和第二消息序号向该每个待推送客户端进行消息推送时还具体实现以下步骤:确定待推送序号;根据待推送主题和待推送序号从消息存储节点获取消息内容;将消息内容发送给该每个待推送客户端;待推送序号的确定过程包括:从小到大依次取大于第二消息序号并且不大于第一消息序号范围内的每个整数作为待推送序号。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
同时执行第一处理逻辑和第二处理逻辑;其中,第一处理逻辑的执行过程包括:在接收到分布式缓存发送的第一事件参数时,根据第一事件参数生成第一推送任务,将第一推送任务加入消息推送队列;第二处理逻辑的执行过程包括:在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,根据第二事件参数生成第二推送任务,将第二推送任务加入所述消息推送队列;
根据消息推送队列进行消息推送。
在一个实施例中,预先确定的消息主题集合为全量主题集合,计算机程序被处理器执行实现在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数时还具体实现以下步骤:在满足预设触发条件时执行预设定时任务;其中,所述预设定时任务的执行过程包括:根据全量主题集合获得第二事件参数。
在一个实施例中,计算机程序被处理器执行实现根据全量主题集合获得第二事件参数时还具体实现以下步骤:对于全量主题集合中的任一主题,在消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第二事件参数。
在一个实施例中,预先确定的消息主题集合包括热点主题集合和全量主题集合,计算机程序被处理器执行实现在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数时还具体实现以下步骤:在满足第一触发条件时执行第一定时任务;其中,第一定时任务的执行过程包括:根据热点主题集合获得第三事件参数;在满足第二触发条件时执行第二定时任务;其中,第二定时任务的执行过程包括:根据全量主题集合获得第四事件参数。
在一个实施例中,计算机程序被处理器执行实现根据热点主题集合获得第三事件参数时还具体实现以下步骤:对于热点主题集合中的任一主题,在消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第三事件参数。
在一个实施例中,计算机程序被处理器执行实现根据全量主题集合获得第四事件参数时还具体实现以下步骤:对于全量主题集合中的任一主题,在消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第四事件参数。
在一个实施例中,计算机程序被处理器执行实现全量主题集合的预先确定时还具体实现以下步骤:接收连接至本推送服务节点的每个客户端发送的该客户端所关注的主题;将所有连接至本推送服务节点的客户端所关注的主题所组成的集合作为全量主题集合。
在一个实施例中,计算机程序被处理器执行实现热点主题集合的预先确定时还具体实现以下步骤:检查全量主题集合中的每个主题,若全量主题集合中的任一主题对应的消息的生成时间满足第二预设条件,将该任一主题作为一个预备主题;将全量主题集合中的所有预备主题组成的集合作为热点主题集合。
在一个实施例中,计算机程序被处理器执行实现根据消息推送队列进行消息推送时还具体实现以下步骤:从消息推送队列中获取最早放入消息推送队列的推送任务作为待推送任务;将待推送任务对应的主题作为待推送主题;若任一连接至本推送服务节点的客户端关注了待推送主题,将该任一连接至本推送服务节点的客户端作为一个待推送客户端;根据待推送任务对应的任务参数向每个待推送客户端进行消息推送,若待推送任务为第一推送任务,该第一推送任务对应的第一事件参数即为待推送任务对应的任务参数,若待推送任务为第二推送任务,该第二推送任务对应的第二事件参数即为待推送任务对应的任务参数。
在一个实施例中,计算机程序被处理器执行实现根据待推送任务对应的任务参数向每个待推送客户端进行消息推送时还具体实现以下步骤:根据待推送任务对应的任务参数确定第一消息序号;确定该每个待推送客户端的对应于待推送主题的最新消息序号,并将该每个待推送客户端的对应于待推送主题的最新消息序号作为第二消息序号;根据待推送主题、第一消息序号和第二消息序号向该每个待推送客户端进行消息推送。
在一个实施例中,计算机程序被处理器执行实现根据待推送主题、第一消息序号和第二消息序号向该每个待推送客户端进行消息推送时还具体实现以下步骤:确定待推送序号;根据待推送主题和待推送序号从消息存储节点获取消息内容;将消息内容发送给该每个待推送客户端;待推送序号的确定过程包括:从小到大依次取大于第二消息序号并且不大于第一消息序号范围内的每个整数作为待推送序号。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种消息推送方法,其特征在于,所述方法包括:
同时执行第一处理逻辑和第二处理逻辑;其中,所述第一处理逻辑的执行过程包括:在接收到分布式缓存发送的第一事件参数时,根据所述第一事件参数生成第一推送任务,将所述第一推送任务加入消息推送队列;所述第二处理逻辑的执行过程包括:在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,根据所述第二事件参数生成第二推送任务,将所述第二推送任务加入所述消息推送队列;
根据所述消息推送队列进行消息推送。
2.根据权利要求1所述的方法,其特征在于,所述方法应用于推送服务集群中的任一个推送服务节点,所述推送服务集群包括多个推送服务节点;
所述第一事件参数是所述分布式缓存在接收到消息生成服务节点发布的第一消息生成事件后发送给本推送服务节点的;其中,所述第一消息生成事件对应于所述第一事件参数,所述消息生成服务节点在发布所述第一消息生成事件时将所述第一消息生成事件对应的消息内容以及所述第一事件参数发送给消息存储节点。
3.根据权利要求2所述的方法,其特征在于,所述预先确定的消息主题集合为全量主题集合;
在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,包括:
在满足预设触发条件时执行预设定时任务;其中,所述预设定时任务的执行过程包括:根据所述全量主题集合获得第二事件参数;
优选地,所述根据全量主题集合获得第二事件参数包括:
对于所述全量主题集合中的任一主题,在所述消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第二事件参数。
4.根据权利要求2所述的方法,其特征在于,所述预先确定的消息主题集合包括热点主题集合和全量主题集合;
在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,包括:
在满足第一触发条件时执行第一定时任务;其中,所述第一定时任务的执行过程包括:根据所述热点主题集合获得第三事件参数;
在满足第二触发条件时执行第二定时任务;其中,所述第二定时任务的执行过程包括:根据所述全量主题集合获得第四事件参数;
优选地,
所述根据所述热点主题集合获得第三事件参数包括:
对于所述热点主题集合中的任一主题,在所述消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第三事件参数;
所述根据所述全量主题集合获得第四事件参数包括:
对于所述全量主题集合中的任一主题,在所述消息存储节点中查询对应于该任一主题的最新消息序号,将该任一主题以及对应于该任一主题的最新消息序号作为一组第四事件参数。
5.根据权利要求3或4所述的方法,其特征在于,
所述全量主题集合的预先确定过程包括:
接收连接至本推送服务节点的每个客户端发送的该客户端所关注的主题;
将所有连接至本推送服务节点的客户端所关注的主题所组成的集合作为所述全量主题集合;
所述热点主题集合的预先确定过程包括:
步骤S1:通过分布式缓存发布第二新消息生成事件;
步骤S2:将所述第二新消息生成事件对应的主题加入初始主题集合;
步骤S3:检查所述初始主题集合中的每个主题,若所述初始主题集合中的任一主题对应的消息的生成时间满足第一预设条件,将该任一主题移出所述初始主题集合;
步骤S4:将完成了步骤S3后得到的初始主题集合作为热点主题集合;
或者,
所述热点主题集合的预先确定过程包括:
检查所述全量主题集合中的每个主题,若所述全量主题集合中的任一主题对应的消息的生成时间满足第二预设条件,将该任一主题作为一个预备主题;
将所述全量主题集合中的所有预备主题组成的集合作为热点主题集合。
6.根据权利要求1-4中任意一项所述的方法,其特征在于,所述根据所述消息推送队列进行消息推送包括:
从所述消息推送队列中获取最早放入所述消息推送队列的推送任务作为待推送任务;
将所述待推送任务对应的主题作为待推送主题;
若任一连接至本推送服务节点的客户端关注了所述待推送主题,将该任一连接至本推送服务节点的客户端作为一个待推送客户端;
根据所述待推送任务对应的任务参数向每个所述待推送客户端进行消息推送,若所述待推送任务为第一推送任务,该第一推送任务对应的第一事件参数即为待推送任务对应的任务参数,若所述待推送任务为第二推送任务,该第二推送任务对应的第二事件参数即为待推送任务对应的任务参数。
7.根据权利要求6所述的方法,其特征在于,所述根据所述待推送任务对应的任务参数向每个所述待推送客户端进行消息推送包括:
根据所述待推送任务对应的任务参数确定第一消息序号;
确定该每个待推送客户端的对应于所述待推送主题的最新消息序号,并将该每个待推送客户端的对应于所述待推送主题的最新消息序号作为第二消息序号;
根据所述待推送主题、所述第一消息序号和所述第二消息序号向该每个所述待推送客户端进行消息推送;
优选地,所述根据所述待推送主题、所述第一消息序号和所述第二消息序号向该每个所述待推送客户端进行消息推送包括:
确定待推送序号;
根据所述待推送主题和所述待推送序号从所述消息存储节点获取消息内容;
将所述消息内容发送给该每个所述待推送客户端;
所述待推送序号的确定过程包括:从小到大依次取大于所述第二消息序号并且不大于所述第一消息序号范围内的每个整数作为待推送序号。
8.一种消息推送装置,其特征在于,所述装置包括:
任务模块,用于同时执行第一处理逻辑和第二处理逻辑;其中,所述第一处理逻辑的执行过程包括:在接收到分布式缓存发送的第一事件参数时,根据所述第一事件参数生成第一推送任务,将所述第一推送任务加入消息推送队列;所述第二处理逻辑的执行过程包括:在满足预设触发条件时根据预先确定的消息主题集合获得第二事件参数,根据所述第二事件参数生成第二推送任务,将所述第二推送任务加入所述消息推送队列;
推送模块,用于根据所述消息推送队列进行消息推送。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011097078.1A CN112448883B (zh) | 2020-10-14 | 2020-10-14 | 消息推送方法、装置、计算机设备和存储介质 |
CA3134297A CA3134297A1 (en) | 2020-10-14 | 2021-10-14 | Message pushing method and device thereof, computer equipment and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011097078.1A CN112448883B (zh) | 2020-10-14 | 2020-10-14 | 消息推送方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112448883A true CN112448883A (zh) | 2021-03-05 |
CN112448883B CN112448883B (zh) | 2023-05-05 |
Family
ID=74736285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011097078.1A Active CN112448883B (zh) | 2020-10-14 | 2020-10-14 | 消息推送方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112448883B (zh) |
CA (1) | CA3134297A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114697282A (zh) * | 2022-02-28 | 2022-07-01 | 青岛海尔科技有限公司 | 消息的处理方法及系统、存储介质、电子装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117376340A (zh) * | 2023-10-10 | 2024-01-09 | 曙光云计算集团有限公司 | 文件上传方法、装置、计算机设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150236970A1 (en) * | 2014-02-17 | 2015-08-20 | Cellco Partnership D/B/A Verizon Wireless | Handling of snapshot messages as a result of delivery failure in a two-way push connection |
CN105871703A (zh) * | 2016-06-03 | 2016-08-17 | 用友网络科技股份有限公司 | 推拉结合的即时通信消息获取系统和方法 |
CN110875935A (zh) * | 2018-08-30 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 消息发布、处理、订阅方法、装置及系统 |
CN111431952A (zh) * | 2019-01-09 | 2020-07-17 | 阿里巴巴集团控股有限公司 | 消息推送方法、装置及系统,计算机存储介质和电子设备 |
CN111475315A (zh) * | 2020-04-09 | 2020-07-31 | 广州华多网络科技有限公司 | 服务器及订阅通知推送控制、执行方法 |
CN111475759A (zh) * | 2020-04-08 | 2020-07-31 | 广州市百果园信息技术有限公司 | 一种消息推送平台、方法、装置、服务器和存储介质 |
KR20200109983A (ko) * | 2019-03-15 | 2020-09-23 | 주식회사 다날 | 결제 대행 서비스의 결제 데이터를 기반으로 산출된 광고주 등급에 기초한 광고 서비스 처리 장치 및 그 동작 방법 |
-
2020
- 2020-10-14 CN CN202011097078.1A patent/CN112448883B/zh active Active
-
2021
- 2021-10-14 CA CA3134297A patent/CA3134297A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150236970A1 (en) * | 2014-02-17 | 2015-08-20 | Cellco Partnership D/B/A Verizon Wireless | Handling of snapshot messages as a result of delivery failure in a two-way push connection |
CN105871703A (zh) * | 2016-06-03 | 2016-08-17 | 用友网络科技股份有限公司 | 推拉结合的即时通信消息获取系统和方法 |
CN110875935A (zh) * | 2018-08-30 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 消息发布、处理、订阅方法、装置及系统 |
CN111431952A (zh) * | 2019-01-09 | 2020-07-17 | 阿里巴巴集团控股有限公司 | 消息推送方法、装置及系统,计算机存储介质和电子设备 |
KR20200109983A (ko) * | 2019-03-15 | 2020-09-23 | 주식회사 다날 | 결제 대행 서비스의 결제 데이터를 기반으로 산출된 광고주 등급에 기초한 광고 서비스 처리 장치 및 그 동작 방법 |
CN111475759A (zh) * | 2020-04-08 | 2020-07-31 | 广州市百果园信息技术有限公司 | 一种消息推送平台、方法、装置、服务器和存储介质 |
CN111475315A (zh) * | 2020-04-09 | 2020-07-31 | 广州华多网络科技有限公司 | 服务器及订阅通知推送控制、执行方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114697282A (zh) * | 2022-02-28 | 2022-07-01 | 青岛海尔科技有限公司 | 消息的处理方法及系统、存储介质、电子装置 |
CN114697282B (zh) * | 2022-02-28 | 2024-03-22 | 青岛海尔科技有限公司 | 消息的处理方法及系统、存储介质、电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112448883B (zh) | 2023-05-05 |
CA3134297A1 (en) | 2022-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108449405B (zh) | 事件提醒方法、装置、计算机设备和存储介质 | |
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
CN108563502B (zh) | 一种任务调度方法和装置 | |
WO2017125015A1 (zh) | 分布式系统工作流处理方法和工作流引擎系统 | |
CN112448883A (zh) | 消息推送方法、装置、计算机设备和存储介质 | |
CN110334126B (zh) | 基于Spring MVC的定时任务处理方法、装置和计算机设备 | |
CN110602165A (zh) | 政务数据同步方法、装置、系统、计算机设备和存储介质 | |
CN110764894A (zh) | 一种定时任务管理方法、装置、设备及存储介质 | |
CN112182113B (zh) | 区块链共识方法、系统、电子设备及存储介质 | |
CN110535928A (zh) | 一种区块链的java智能合约的事件推送方法 | |
CN111222089A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US7487272B2 (en) | Using queue specific variable(s) to efficiently delete expired items in an ordered queue without necessarily checking each queued item's expiry time | |
CN112671613A (zh) | 联邦学习集群监控方法、装置、设备及介质 | |
EP2911068A1 (en) | Tree-structure storage method for managing computation offloading data | |
CN116701063B (zh) | 数联网数据语用内存状态数据的持久化方法、装置及系统 | |
CN113407560A (zh) | 更新消息处理方法、数据同步方法、配置信息配置方法 | |
CN111666260A (zh) | 数据处理方法及装置 | |
CN114780217B (zh) | 任务调度方法、装置、计算机设备以及介质 | |
CN107707672B (zh) | 一种负载均衡的代码重构的方法、装置及设备 | |
CN112162698B (zh) | 一种缓存分区重建方法、装置、设备及可读存储介质 | |
CN111625323A (zh) | 分布式任务处理方法、装置、设备及计算机可读存储介质 | |
CN113360783B (zh) | 用户在线列表更新方法、装置及计算机设备 | |
CN114661545A (zh) | 处理器资源的监控方法、装置、设备及存储介质 | |
CN112291299B (zh) | 基于AI Station推理平台的同步方法、装置、设备及存储介质 | |
CN115297076A (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 |