CN112565405A - 消息统一推送方法、系统、设备和计算机可读存储介质 - Google Patents
消息统一推送方法、系统、设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN112565405A CN112565405A CN202011399286.7A CN202011399286A CN112565405A CN 112565405 A CN112565405 A CN 112565405A CN 202011399286 A CN202011399286 A CN 202011399286A CN 112565405 A CN112565405 A CN 112565405A
- Authority
- CN
- China
- Prior art keywords
- message
- sending
- external
- sending queue
- slow
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- 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/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- 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/547—Messaging middleware
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)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种消息统一推送方法、系统、设备和计算机可读存储介质。该方法包括:通过通用接口获取外部消息数据;根据外部消息数据确定消息类型,以根据消息类型将外部消息数据发送至快发队列或慢发队列;通过快发队列或慢发队列将外部消息数据发送至预设消息中间件,将外部消息数据发送给预设配置模板拼接成推送消息,预设配置模板设置于预设消息中间件的消费端应用;将推送消息发送至外部应用。本发明实施例通过快发队列和慢发队列分别进行消息推送,通过快发队列和慢发队列结合的方式,对外部消息数据的属性信息进行配置管理,避免了时效性较高的消息因消息堵塞而无法触达用户,合理的控制了推送频率确保消息按照预设期望触达用户。
Description
技术领域
本发明涉及消息推送技术领域,尤其涉及一种消息统一推送方法、系统、设备和计算机可读存储介质。
背景技术
随着信息化技术和电子渠道的业务发展要求,需要将不同业务系统中的数据信息进行处理,然后基于业务要求,通过消息推送的模式在不同的渠道触达用户,要实现这个功能,互联网上通用的解决方案就是消息推送服务提供对外的接口API服务,各个业务系统将所需要推送的数据信息通过接口API的形式传递给推送消息服务,然后推送消息服务基于不同渠道的推送通道进行消息推送触达用户;
现在传统的模式需要针对不同的需求单独开发接口,同时很难把控各个业务系统的接口API调用量,对消息服务的运行承载量要求很高,针对突发大量接口调用量时容易出现消息堵塞,从而让非重要的(时效性不高)消息触达用户,而重要的消息(时效性高)的消息无法触达用户。
发明内容
有鉴于此,本发明实施例提供一种消息统一推送方法、系统、设备和计算机可读存储介质,以实现对待推送消息的统一管理,通过快发队列和慢发队列实现消息的分类推送保障重要信息及时触及用户。
第一方面,本发明实施例提供了一种消息统一推送方法,包括:
通过通用接口获取外部消息数据;
根据所述外部消息数据确定消息类型,以根据消息类型将所述外部消息数据发送至快发队列或慢发队列;
通过所述快发队列或慢发队列将所述外部消息数据发送至预设消息中间件,所述预设消息中间件用于将所述外部消息数据发送给预设配置模板拼接成推送消息,所述预设配置模板设置于所述预设消息中间件的消费端应用;
将所述推送消息发送至外部应用。
第二方面,本发明实施例还提供了一种消息统一推送系统,该系统包括:
消息统一接收模块,用于通过通用接口获取外部消息数据;
快慢发区分模块,用于根据所述外部消息数据确定消息类型,以根据消息类型将所述外部消息数据发送至快发队列或慢发队列;
消息拼接模块,用于通过所述快发队列或慢发队列将所述外部消息数据发送至预设消息中间件,所述预设消息中间件用于将所述外部消息数据发送给预设配置模板拼接成推送消息,所述预设配置模板设置于所述预设消息中间件的消费端应用;
消息推送模块,用于将所述推送消息发送至外部应用。
第三方面,本发明实施例还提供了计算机设备,包括存储器和处理器,存储器上存储有可在处理器运行的计算机程序,处理器执行计算机程序时实现如本发明任一实施例提供的消息统一推送方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被执行时实现如本发明任一实施例提供的消息统一推送方法。
本发明实施例提供的技术方案,通过快发队列和慢发队列分别进行消息推送,通过快发队列和慢发队列结合的方式对消息体的时效性、重要性等属性信息进行配置管理,实现消息的合理化推送,很好的避免重要时效性较高的消息因消息堵塞而无法触达用户,合理的控制了推送频率确保消息按照预设期望触达用户,对消息进行两级消费实现了消息推送的两层解耦,即通过快发队列和慢发队列进行消息筛选,解决了高吞吐量带来的处理压力,又通过预设消息中间件进行对应渠道的消息拼接、发送提高了整体的稳定性和扩展性。
附图说明
图1是本发明实施例一中的消息统一推送方法的流程图;
图2是本发明实施例二中的一个消息统一推送方法流程图;
图3是本发明实施例二中的又一个消息统一推送方法流程图;
图4是本发明实施例二中的另一个消息统一推送方法流程图;
图5是本发明实施例三中的消息统一推送系统结构示意图;
图6是本发明实施例四中的计算机设备结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第一速度差值为第二速度差值,且类似地,可将第二速度差值称为第一速度差值。第一应用和第二应用两者都是应用,但其不是同一应用。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。需要说明的是,当部被称为“固定于”另一个部,它可以直接在另一个部上也可以存在居中的部。当一个部被认为是“连接”到另一个部,它可以是直接连接到另一个部或者可能同时存在居中部。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述,只是为了说明的目的,并不表示是唯一的实施方式。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一提供的一种消息统一推送方法的流程图,本实施例可适用于具备消息推送服务的终端和服务器,消息统一推送方法可以通过终端和服务器上的软件实现,如手机上的移动信使。具体的,如图1所示,该方法包括如下步骤:
S110、通过通用接口获取外部消息数据。
通用接口表示可以连接不同外部渠道的接口,通过通用接口可以获取不同消息渠道的待推送消息,例如购物软件的优惠推送信息、手机消息中心的账单信息等,而不同的消息渠道有不同的业务系统,例如手机话费余额、账单信息涉及到CRM系统,用户沟通信息涉及到订单系统,业务的办理记录涉及到各个业务系统,通用接口采用一套通用的接口规范(可以自行定义),该接口规范通过预先配置识别外部消息数据的消息是否合法,并通过敏感词等安全性校验,只有通过校验的外部消息数据才可以被通用接口获取,通用接口可以直接对接不同的业务系统并接收数据。示例性的,通用接口的具体实现可通过msgpush应用,其可以针对外部应用的数据接口进行统一收口管理,实现对不同业务系统的对接。
具体的,终端中设置有通用接口能力组件,用于通过通用接口将外部消息数据进行统一收集。
S120、根据所述外部消息数据确定消息类型,以根据消息类型将所述外部消息数据发送至快发队列或慢发队列。
现有技术中,有类似进行消息管理的方法中,在获取到外部消息数据后,均只进行简单分析后按照原有的消息推送规则直接进行推送,而针对消息堵塞、重要消息和非重要消息的区分均没有起到良好的效果,进起到了数据整合的作用。本实施例中针对该问题特地设置了快发队列和慢发队列,快发队列和慢发队列属于kafka队列。当获取到外部消息数据后,基于外部消息数据分析消息类型,以确定消息需要从快发队列进行处理还是从慢发队列进行处理,具体的,在对外部消息数据进行分析时,综合考虑外部消息数据的时效性和重要性。快发队列中(在快发队列的消费端不做速度限制,按照正常模式批量消费队列数据),消息推送速度快,可以用于处理具有推送时限的外部消息数据,例如某优惠券具有使用期限,若超期则无法使用,则为了避免超期应当尽快将该优惠券推送消息尽快推送到相应的外部应用;慢发队列用于处理具有推送到达要求外部消息数据,例如账单信息,其没有推送期限要求但是需要确保能够推送达用户,快发队列由于数据吞吐量大容易出现消息漏推送的情况,因而可以选择慢发队列进行账单信息的推送。示例性的,当账单信息和优惠券信息同时进行推送时,若采用同一队列(或相同处理速度的不同队列)推送,因数据吞吐量太大,容易出现消息堵塞的情况,二者都需要等待较长时间才能实现消息触达用户,而本申请中可以控制慢发队列的消费端应用进行消费速度把控,使得快发队列的消费端应用可以使用足够的系统资源快速完成高时效性消息的推送。当然上述仅为示例,实际可以根据外部消息数据的具体情况进行消息类型划分,以根据不同的消费类型将外部消息数据分别发送至快发队列和慢发队列。
S130、通过所述快发队列或慢发队列将所述外部消息数据发送至预设消息中间件,所述预设消息中间件用于将所述外部消息数据发送给预设配置模板拼接成推送消息,所述预设配置模板设置于所述预设消息中间件的消费端应用。
当外部消息数据发送到快发队列和慢发队列后,快发队列的消费端应用启动快发topic消费监听,慢发队列的消费端应用启动慢发topic消费监听,通过快发topic消费监听和慢发topic消费监听来监听是否发生消费(请求获取推送消息),若产生消费则向对应的预设消息中间件推送外部信息数据,本实施例中,快发队列和慢发队列的消费端应用基于不同的外部消息数据根据消息渠道不同对应有不同的消息组装、推送等逻辑处理,为了保证消息组装、推送的异步化处理,降低应用响应压力,引入了预设消息中间件进行二次消费,具体的,此处所指的预设消息中间件为activemq。
预设配置模板用于对外部消息数据中的数据进行拼接,将其转化成可以由外部应用识别、接收并使用的推送消息。当快发队列或慢发队列将外部消息数据推送到下一层到达预设消息中间件的消费端应用之后,预设消息中间件的消费端应用中预先存储有预设配置模板,每个预设消息中间件的消费端应用中的预设配置模板都是不同的,即外部消息数据会被推送到对应的消息中间件,再由对应的消费端应用中的预设配置模板将其转化成推送消息。
预设消息中间件的作用是针对消息的不同推送渠道进行消息拼接、发送。可以理解为快发队列和慢发队列实际是将外部消息数据根据消息属性进行筛选区分,而真正执行消息推送的是预设消息中间件,预设消息中间件的预设配置模板对应外部应用的渠道,其可以实现同一消息的不同渠道推送、不同消息的不同渠道推送以及不同消息的同一渠道推送。示例性的,某部分发布一预警消息,为保障更多人能够接收到预警消息,需要通过短信、公众号和客户端APP三个渠道进行推送,则短信、公众号和客户端APP会通过三个预设消息中间件消费快发队列或慢发队列中的预警消息数据,进而通过三个预设消息中间件将预警消息以短信、公众号信息、客户端通知三种形式触及用户。即外部消息有对应的推送应用,不同的推送应用对应不同的推送渠道,而每个渠道对应有一个单独的预设消息中间件,慢发队列和快发队列在将所述外部消息数据发送至预设消息中间件,首先根据外部消息数据确定对应的推送渠道(指的是不同的activemq队列),再根据对应的推送渠道将外部消息数据发送至对应的预设消息中间件,最后由对应的预设消息中间件(activemq队列)将外部消息数据推送至对应的外部应用。
本实施例中为每个推送渠道设置单独的预设消息中间件目的在于对消息推送进行进一步解耦,提高不同推送渠道的独立性,这样在新增推送渠道时无需对快发队列和慢发队列进行改动,也无需对已有的预设消息中间件进行改动,只需新增对应的预设消息中间件,简单方便。
S140、将所述推送消息发送至外部应用。
在将外部消息数据转化成推送消息后,直接将推送消息发送给对应的外部应用,以完成消息推送。
本实施例提供了一种消息统一推送方法,通过通用接口统一获取外部消息数据,根据外部消息数据确定消息类型,再根据消息类型确定将外部消息数据发送到快发队列还是慢发队列,根据快发队列和慢发队列的消费规则向下层推送外部消息数据,使得外部消息数据通过预设配置模块拼接成推送消息后发送给外部应用,该方法摆脱了传统消息推送方式中仅根据固定的优先级进行推送方式,可以通过快发队列和慢发队列分别进行消息推送,通过快发队列和慢发队列结合的方式对消息体的属性信息进行配置管理,实现消息的合理化推送,很好的避免重要时效性较高的消息因消息堵塞而无法触达用户,合理的控制了推送频率确保消息按照预设期望触达用户,对消息进行两级消费实现了消息推送的两层解耦,即通过快发队列和慢发队列进行消息筛选,解决了高吞吐量带来的处理压力,又通过预设消息中间件进行对应渠道的消息拼接、发送提高了整体的稳定性和扩展性。
实施例二
本发明实施例二提供了一种消息统一推送方法,本实施例在实施例一的基础上对实施例一中的部分内容作了更详细的解释和补充,例如快发队列和慢发队列的消费方式,具体包括:
如图2所示的消息统一推送方法流程示意图,步骤S120包括步骤S121-123:
S121、根据所述外部消息数据确定对应的消息类型为高时效性消息或非高时效性消息。
本实施例中,高时效性消息表示需要在指定时间段内推送到用户的消息,高时效性消息存在过期作废的情况,而非高时效性消息是指旨在要求能够推送到用户而对时间期限没有要求的信息。显然高时效性消息需要快速完成推送,而非高时效性信息需要避免推送完用户未接收到的情况。因此高时效性消息通过快发队列进行推送,而非高失效性信息通过慢发队列进行推送。
S122、若为高时效性消息,则将所述外部消息数据发送至快发队列。
具体的,在所述快发队列中,根据快发队列的消费端应用确定对应的第一偏移量,根据所述第一偏移量将所述外部消息数据发送至第一消息中间件,所述第一偏移量由所述快发队列记录,所述第一消息中间件为配置于快发队列的消费端应用上的预设消息中间件。快发队列的消费端应用通过快发topic消费监听进行高时效性消息的快速推送,为了保证处理消息的速度,由快发队列自行记录偏移量(称为第一偏移量),以在不同的消息中间件获取外部消息数据(进行消费)时,由快发队列自行确定对应的第一偏移量进行消费,以完成快速推送。
S123、若是非高时效性消息,则将所述外部消息发送至慢发队列。
与快发队列对应的,在所述慢发队列的消费端应用中,获取慢发队列的消费端应用提交的第二偏移量,根据所述第二偏移量将所述慢发队列中的外部消息数据发送至第二消息中间件,所述第二偏移量由所述慢发队列的消费端应用记,所述第二消息中间件为配置于慢发队列的消费端应用上的预设消息中间件。在慢发队列中,偏移量是由作为消费者的预设消息中间件自行记录的。这是因为Kafka消费端应用(消费者)实际使用限流处理实现消息慢发处理,这个实现的限流原理是令牌桶,慢发功能实现会导致循环重复消费kafkatopic里的老数据的问题。重复消费的原因:消费者限制了处理消息的速度,导致提交偏移量超时了,心跳检测已经检测不到时,coordinator认为这个消费者已经崩溃做了rebalance,做了rebalance后会给存活的消费者分配新的消费者id,使用原来的消费者id去提交偏移量就会失败,kafka服务就会认为这一批消息没有被消费,又会被重新消费一次。因此为了避免rebalance后的重复消费,需要将慢发队列中的偏移量由作为消费者的预设消息中间件自行记录,以实现完全根据预设消息中间件的处理速度从慢发队列中获取外部消息数据,而不会出现重复推送和推送遗漏的情况。
具体的,慢发队列中采用令牌桶算法对慢发队列的消息消费速度进行限制,以保证足够的资源供快发队列快速进行消费。在慢发队列汇总,慢发队列的消费端应用每次消费会消耗掉一个令牌,而令牌桶算法会以预定速度提供令牌(例如每秒1000个),当慢发队列的消费端应用消费速度达到预定速度时由于没有令牌可以使用,慢发队列的消费端应用的消费请求不会被处理,具体可以通过排队等待、降级处理和拒绝服务中的一种处理没有令牌的消费请求。应当理解的是,瞬时存在的令牌数量是有最大值的,最大值就是每秒能产生的令牌数值,例如预定速度为每秒1000个,则瞬时存在的令牌数量的最大值就是1000。
更具体的,在一个实施例中,如图3所示,步骤S110之后,还包括步骤S210:
S210、将所述外部消息数据统一归类写入内存队列,以存储外部消息数据。步骤S210引入内存队列用于实现外部消息数据的批量入库,以保证通用接口不会堵塞,保障了外部消息数据接口的快速响应,同时结合内存队列可以实现批量入库操作,降低了对数据库的操作频率,降低了数据库访问压力。
可选的,在一个实施例中,在步骤S130之前,还包括步骤S220(图未示):
S220、在所述预设消息中间件的消费端应用中设置预设配置模板,所述预设配置模板用于将外部消息数据按照预设规则拼接,生成推送消息,并将推送消息推送至指定外部应用。
预设配置模板用于根据不同的外部应用配置与之对应的推送消息,这是由于经通用接口获取到的外部消息数据为统一消息体,而不同的外部应用能够识别、接收、使用的推送消息格式、内容均不相同,因此在新增外部应用进行管理时,需要设置与之对应的预设消息中间件进行区分和处理,并在预设消息中间件的消费端应用中设置对应的预设配置模板,以实现根据统一消息体拼接得到对应的推送消息。
具体的,一个预设配置模板示例为:
模版:
{{first}}
订单号:{orderNum}}
时间:${MONTH}月${DAY}日您成功充值${MONEY_AMOUNT}元,当前您的充值账户余额为${BALANCE}元。
{{remark}};
上述预设模板示例中,大括号中的内容就是通过不同渠道配置化去匹配统一消息体内容实现模版的拼装。
可选的,在一个实施例中,如图4所示,在步骤S140之后,还包括步骤S230:
S230、根据所述外部消息数据和所述推送消息确定是否存在推送遗漏,若有则确定遗漏信息。
消息推送过程中可能会存在多种原因导致消息丢失,例如快发队列中消息发出后未到达外部应用便丢失了,而快发队列中第一偏移量已经更新,外部消息数据也已经删除,则消息出现丢失,因此需要统计是否存在推送遗漏的情况,统计遗漏信息以便发现是否有重要信息遗漏,或出现大量信息遗漏,以便优化用户体验。
本实施例在上一实施例的基础上进一步补充了快发队列和慢发队列中偏移量的记录方式,以避免慢发队列中出现重复消费的情况,确保慢发队列中的消息稳定准确推送到用户,并且通过确定遗漏信息了解信息触达情况,方便人员管理。
实施例三
图5所示为本发明实施例三提供的一种消息统一推送系统300的结构示意图,该消息统一推送系统的具体结构如下:
消息统一接收模块310,用于通过通用接口获取外部消息数据。
快慢发区分模块320,用于根据所述外部消息数据确定消息类型,以根据消息类型将所述外部消息数据发送至快发队列或慢发队列。
消息拼接模块330,用于通过所述快发队列或慢发队列将所述外部消息数据发送至预设消息中间件,所述预设消息中间件用于将所述外部消息数据发送给预设配置模板拼接成推送消息,所述预设配置模板设置于所述预设消息中间件的消费端应用。
消息推送模块340,用于将所述推送消息发送至外部应用。
可选的,在一个实施例中,快慢发区分模块320包括消息区分单元、快发分配单元和慢发分配单元,其中:
消息区分单元,用于根据所述外部消息数据确定对应的消息类型为高时效性消息或非高时效性消息;
快发分配单元,用于若消息类型为高时效性消息,则将所述外部消息数据发送至快发队列;
慢发分配单元,用于若消息类型是非高时效性消息,则将所述外部消息发送至慢发队列。
可选的,在一个实施例中,消息统一推送系统300还包括内存模块,用于将所述外部消息数据统一归类写入内存队列,存储外部消息数据,以降低数据库访问压力,实现批量入库。
可选的,在一个实施例中,所述消息拼接模块包括快发监控单元和慢发监控单元:
快发监控单元,用于在所述快发队列中,根据快发队列的消费端应用确定对应的第一偏移量,根据所述第一偏移量将所述外部消息数据发送至第一消息中间件,所述第一偏移量由所述快发队列记录,所述第一消息中间件为配置于快发队列的消费端应用上的预设消息中间件;
慢发监控单元,用于在所述慢发队列中,获取慢发队列的消费端应用提交的第二偏移量,根据所述第二偏移量将所述慢发队列中的外部消息数据发送至第二消息中间件,所述第二偏移量由所述慢发队列的消费端应用记,所述第二消息中间件为配置于慢发队列的消费端应用上的预设消息中间件。
可选的,在一个实施例中,该系统还包括模板配置模块,用于在所述预设消息中间件的消费端应用中设置预设配置模板,所述预设配置模板用于将外部消息数据按照预设规则拼接,生成推送消息,并将推送消息推送至指定外部应用。
可选的,在一个实施例中,该系统还包括信息清点模块,用于根据所述外部消息数据和所述推送消息确定是否存在推送遗漏,若有则确定遗漏信息。
本实施例进一步提供了一种消息统一推送系统,通过通用接口统一获取外部消息数据,根据外部消息数据确定消息类型,再根据消息类型确定将外部消息数据发送到快发队列还是慢发队列,根据快发队列和慢发队列的消费规则向下层推送外部消息数据,使得外部消息数据通过预设配置模块拼接成推送消息后发送给外部应用,该方法摆脱了传统消息推送方式中仅根据固定的优先级进行推送方式,可以通过快发队列和慢发队列分别进行消息推送,通过快发队列和慢发队列结合的方式对消息体的时效性、重要性等属性信息进行配置管理,实现消息的合理化推送,很好的避免重要时效性较高的消息因消息堵塞而无法触达用户,合理的控制了推送频率确保消息按照预设期望触达用户。
本发明实施例所提供了一种消息统一推送系统可执行本发明前述实施例所提供的任意一种消息统一推送方法,其具备执行方法相应的功能模块和有益效果。
实施例四
图6为本发明实施例四提供的一种计算机设备400的结构示意图,如图6所示,该计算机设备400用于实现本发明任一实施例所提供的的消息统一推送方法,该计算机设备400包括存储器410、处理器420,消息统一推送设备中处理器420的数量可以是一个或多个,图6中以一个处理器420为例;消息统一推送设备中的存储器410、处理器420可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器40作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的消息统一推送方法对应的程序指令/模块(例如,消息统一推送系统中的消息统一接收模块310、快慢发区分模块320、推送监控模块330和消息推送模块340)。处理器420通过运行存储在存储器410中的软件程序、指令以及模块,从而执行消息统一推送设备的各种功能应用以及数据处理,即实现上述的消息统一推送方法。
其中,所述处理器420用于运行存储在存储器410中的计算机可执行程序,以实现如下步骤:步骤110、通过通用接口获取外部消息数据;步骤120、根据所述外部消息数据确定消息类型,以根据消息类型将所述外部消息数据发送至快发队列或慢发队列;步骤130、通过所述快发队列或慢发队列将所述外部消息数据发送至预设消息中间件,所述预设消息中间件用于将所述外部消息数据发送给预设配置模板拼接成推送消息,所述预设配置模板设置于所述预设消息中间件的消费端应用;步骤140、将所述推送消息发送至外部应用。
当然,本发明实施例所提供的一种消息统一推送设备,该消息统一推送设备不限于如上所述的方法操作,还可以执行本发明实施例任意实施例所提供的消息统一推送方法中的相关操作。
存储器410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器410可进一步包括相对于处理器420远程设置的存储器,这些远程存储器可以通过网络连接至消息统一推送设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述设备可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种消息统一推送方法,该消息统一推送方法包括:
通过通用接口获取外部消息数据;
根据所述外部消息数据确定消息类型,以根据消息类型将所述外部消息数据发送至快发队列或慢发队列;
通过所述快发队列或慢发队列将所述外部消息数据发送至预设消息中间件,所述预设消息中间件用于将所述外部消息数据发送给预设配置模板拼接成推送消息,所述预设配置模板设置于所述预设消息中间件的消费端应用;
将所述推送消息发送至外部应用。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的消息统一推送方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,消息统一推送设备,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述消息统一推送系统的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种消息统一推送方法,其特征在于,包括:
通过通用接口获取外部消息数据;
根据所述外部消息数据确定消息类型,以根据消息类型将所述外部消息数据发送至快发队列或慢发队列;
通过所述快发队列或慢发队列将所述外部消息数据发送至预设消息中间件,所述预设消息中间件用于将所述外部消息数据发送给预设配置模板拼接成推送消息,所述预设配置模板设置于所述预设消息中间件的消费端应用;
将所述推送消息发送至外部应用。
2.根据权利要求1所述的消息统一推送方法,其特征在于,所述根据所述外部消息数据确定消息类型,以根据消息类型将所述外部消息数据发送至快发队列或慢发队列,包括:
根据所述外部消息数据确定对应的消息类型为高时效性消息或非高时效性消息;
若为高时效性消息,则将所述外部消息数据发送至快发队列;
若是非高时效性消息,则将所述外部消息发送至慢发队列。
3.根据权利要求1所述的消息统一推送方法,其特征在于,所述通过通用接口获取外部消息数据之后,还包括:
将所述外部消息数据统一归类写入内存队列,以存储外部消息数据。
4.根据权利要求1所述的消息统一推送方法,其特征在于,所述通过所述快发队列或慢发队列将所述外部消息数据发送至预设消息中间件,包括:
在所述快发队列中,根据快发队列的消费端应用确定对应的第一偏移量,根据所述第一偏移量将所述外部消息数据发送至第一消息中间件,所述第一偏移量由所述快发队列记录,所述第一消息中间件为配置于快发队列的消费端应用上的预设消息中间件;
在所述慢发队列中,获取慢发队列的消费端应用提交的第二偏移量,根据所述第二偏移量将所述慢发队列中的外部消息数据发送至第二消息中间件,所述第二偏移量由所述慢发队列的消费端应用记,所述第二消息中间件为配置于慢发队列的消费端应用上的预设消息中间件。
5.根据权利要求4所述的消息统一推送方法,其特征在于,所述通过所述快发队列或慢发队列将所述外部消息数据发送至预设消息中间件之前,还包括:
在所述预设消息中间件的消费端应用中设置预设配置模板,所述预设配置模板用于将外部消息数据按照预设规则拼接,生成推送消息。
6.根据权利要求1所述的消息统一推送方法,其特征在于,将所述推送消息发送至外部应用之后,还包括:
根据所述外部消息数据和所述推送消息(的数据进行对比)确定是否存在推送遗漏,若有则确定遗漏信息。
7.一种消息统一推送系统,其特征在于,包括:
消息统一接收模块,用于通过通用接口获取外部消息数据;
快慢发区分模块,用于根据所述外部消息数据确定消息类型,以根据消息类型将所述外部消息数据发送至快发队列或慢发队列;
消息拼接模块,用于通过所述快发队列或慢发队列将所述外部消息数据发送至预设消息中间件,所述预设消息中间件用于将所述外部消息数据发送给预设配置模板拼接成推送消息,所述预设配置模板设置于所述预设消息中间件的消费端应用;
消息推送模块,用于将所述推送消息发送至外部应用。
8.根据权利要求7所述的消息统一推送系统,其特征在于,所述消息拼接模块包括:
快发监控单元,用于在所述快发队列中,根据快发队列的消费端应用确定对应的第一偏移量,根据所述第一偏移量将所述外部消息数据发送至第一消息中间件,所述第一偏移量由所述快发队列记录,所述第一消息中间件为配置于快发队列的消费端应用上的预设消息中间件;
慢发监控单元,用于在所述慢发队列中,获取慢发队列的消费端应用提交的第二偏移量,根据所述第二偏移量将所述慢发队列中的外部消息数据发送至第二消息中间件,所述第二偏移量由所述慢发队列的消费端应用记,所述第二消息中间件为配置于慢发队列的消费端应用上的预设消息中间件。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器上存储有可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-6任一所述的消息统一推送方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被执行时实现如权利要求1-6任一所述的消息统一推送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011399286.7A CN112565405B (zh) | 2020-12-01 | 2020-12-01 | 消息统一推送方法、系统、设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011399286.7A CN112565405B (zh) | 2020-12-01 | 2020-12-01 | 消息统一推送方法、系统、设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112565405A true CN112565405A (zh) | 2021-03-26 |
CN112565405B CN112565405B (zh) | 2023-07-18 |
Family
ID=75047808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011399286.7A Active CN112565405B (zh) | 2020-12-01 | 2020-12-01 | 消息统一推送方法、系统、设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112565405B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988828A (zh) * | 2021-04-25 | 2021-06-18 | 北京致趣科技有限公司 | 消息推送方法及电子设备 |
CN113765926A (zh) * | 2021-09-08 | 2021-12-07 | 百果园技术(新加坡)有限公司 | 一种消息重建方法及系统 |
CN114070712A (zh) * | 2021-07-14 | 2022-02-18 | 北京天元创新科技有限公司 | 消息不落地的网管告警处理方法及装置 |
CN114124881A (zh) * | 2021-11-30 | 2022-03-01 | 中国建设银行股份有限公司 | 一种基于优先级的消息推送方法及相关装置 |
CN116384956A (zh) * | 2023-06-05 | 2023-07-04 | 天津金城银行股份有限公司 | 一种消息批量发送方法、装置、设备和存储介质 |
CN117560417A (zh) * | 2023-11-20 | 2024-02-13 | 上海万雍科技股份有限公司 | 针对消息发送的队列控制方法、装置、电子设备与介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468819A (zh) * | 2014-12-24 | 2015-03-25 | 福建江夏学院 | 一种物联网消息推送系统及其方法 |
CN108989387A (zh) * | 2018-06-07 | 2018-12-11 | 阿里巴巴集团控股有限公司 | 控制异步请求的方法、装置及设备 |
CN111131368A (zh) * | 2018-11-01 | 2020-05-08 | 中国移动通信集团浙江有限公司 | 消息推送方法和装置 |
-
2020
- 2020-12-01 CN CN202011399286.7A patent/CN112565405B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468819A (zh) * | 2014-12-24 | 2015-03-25 | 福建江夏学院 | 一种物联网消息推送系统及其方法 |
CN108989387A (zh) * | 2018-06-07 | 2018-12-11 | 阿里巴巴集团控股有限公司 | 控制异步请求的方法、装置及设备 |
CN111131368A (zh) * | 2018-11-01 | 2020-05-08 | 中国移动通信集团浙江有限公司 | 消息推送方法和装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988828A (zh) * | 2021-04-25 | 2021-06-18 | 北京致趣科技有限公司 | 消息推送方法及电子设备 |
CN112988828B (zh) * | 2021-04-25 | 2024-03-12 | 北京致趣科技有限公司 | 消息推送方法及电子设备 |
CN114070712A (zh) * | 2021-07-14 | 2022-02-18 | 北京天元创新科技有限公司 | 消息不落地的网管告警处理方法及装置 |
CN114070712B (zh) * | 2021-07-14 | 2024-05-24 | 北京天元创新科技有限公司 | 消息不落地的网管告警处理方法及装置 |
CN113765926A (zh) * | 2021-09-08 | 2021-12-07 | 百果园技术(新加坡)有限公司 | 一种消息重建方法及系统 |
CN114124881A (zh) * | 2021-11-30 | 2022-03-01 | 中国建设银行股份有限公司 | 一种基于优先级的消息推送方法及相关装置 |
CN116384956A (zh) * | 2023-06-05 | 2023-07-04 | 天津金城银行股份有限公司 | 一种消息批量发送方法、装置、设备和存储介质 |
CN116384956B (zh) * | 2023-06-05 | 2023-08-15 | 天津金城银行股份有限公司 | 一种消息批量发送方法、装置、设备和存储介质 |
CN117560417A (zh) * | 2023-11-20 | 2024-02-13 | 上海万雍科技股份有限公司 | 针对消息发送的队列控制方法、装置、电子设备与介质 |
CN117560417B (zh) * | 2023-11-20 | 2024-05-17 | 上海万雍科技股份有限公司 | 针对消息发送的队列控制方法、装置、电子设备与介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112565405B (zh) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112565405A (zh) | 消息统一推送方法、系统、设备和计算机可读存储介质 | |
US11842208B2 (en) | Virtual provisioning with implementation resource boundary awareness | |
US10802869B2 (en) | Efficient, time-based leader node election in a distributed computing system | |
EP3502880B1 (en) | Method for preloading application, storage medium, and terminal device | |
WO2021180025A1 (zh) | 一种消息处理方法、装置、电子设备及介质 | |
WO2018014811A1 (zh) | 风险识别方法、客户端设备及风险识别系统 | |
US20190340166A1 (en) | Conflict resolution for multi-master distributed databases | |
WO2018041020A1 (zh) | 一种广播消息的管理方法及装置 | |
EP2815328B1 (en) | Power efficient brokered communication supporting notification blocking | |
US20120084113A1 (en) | Virtual resource cost tracking with dedicated implementation resources | |
CN109152061B (zh) | 通道调配方法、装置、服务器及存储介质 | |
CN112650576A (zh) | 资源调度方法、装置、设备、存储介质及计算机程序产品 | |
CN111562889B (zh) | 数据处理方法、装置、系统及存储介质 | |
CN109766172B (zh) | 一种异步任务调度方法以及装置 | |
KR102556186B1 (ko) | 인공 지능 개발 플랫폼의 관리 방법 및 장치, 매체 | |
CN110737425B (zh) | 一种计费平台系统的应用程序的建立方法及装置 | |
CN110912949A (zh) | 位点提交方法和装置 | |
CN117633102A (zh) | 区块链的数据整合方法、装置、计算机设备及存储介质 | |
CN112039985B (zh) | 一种异构云管理方法及系统 | |
CN116701020A (zh) | 消息延时处理方法、装置、设备、介质和程序产品 | |
CN113392081B (zh) | 数据处理系统及方法 | |
CN113368494A (zh) | 云设备分配方法、装置、电子设备及存储介质 | |
CN111756836B (zh) | 一种基于事件管理模型的信息发送方法及装置 | |
CN113742355A (zh) | 更新库存的方法、装置、设备和计算机可读介质 | |
TWI839106B (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 |