CN113839977A - 消息推送方法、装置、计算机设备及存储介质 - Google Patents
消息推送方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113839977A CN113839977A CN202010588694.0A CN202010588694A CN113839977A CN 113839977 A CN113839977 A CN 113839977A CN 202010588694 A CN202010588694 A CN 202010588694A CN 113839977 A CN113839977 A CN 113839977A
- Authority
- CN
- China
- Prior art keywords
- message
- pushing
- push
- target
- channel
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004088 simulation Methods 0.000 claims description 19
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000005441 aurora Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种消息推送方法、装置、计算机设备及存储介质,该消息推送方法包括:获取消息推送请求;生成多个消息渠道对应的推送消息;获取多个消息渠道的消息推送优先级;以多个消息渠道中的一个消息渠道为目标消息渠道,以推送对象中一个对象为目标推送对象,模拟向目标推送对象推送目标消息渠道对应的推送消息,直至多个消息渠道中一个消息渠道模拟推送消息成功为止,确定模拟推送消息成功的消息渠道为目标推送对象的有效消息渠道;通过有效消息渠道,向目标推送对象异步推送有效消息渠道对应的推送消息。本申请实施例中考虑到了用户实际的需求,提高了消息推送的成功率,另外基于异步推送的方式可以应用于海量消息推送的业务场景。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种消息推送方法、装置、计算机设备及存储介质。
背景技术
在现行的互联网应用中,用户经常会收到各类消息通知。最常见的消息通知渠道有短信、语音、邮件、微信、应用消息推送通知等。这些消息通知可能发生在用户注册、登录、下单、物流发货、订单签收等不同的环节,这些友好的消息通知能很好地提升***与用户的交互,而且在某些场景下可以提高用户账号、资金、订单数据的安全性,例如,验证码、邮件认证等等。为了实现这种多渠道消息通知的推送,应用服务端需要提供短信发送网关、邮件发送网关、微信发送网关、应用消息推送网关等。不同的应用***需要调用对应的网关服务将消息推送给用户,然而不同的应用网关可能由不同的对接协议、规范,且各渠道的消息推送模板也存在差异。
目前提供消息推送功能的平台众多,例如阿里云(Alibaba)-云通信、腾讯云(tencent)-云通信、edm(邮件推送平台)、梦网云通信(短信推送平台)、极光推送(短信)。
这些消息推送平台在消息送达,消息统计等业务上,都很优秀,满足了大部分市场上的业务需求,但现有技术消息推送渠道单一,不能全方位满足客户的需求,(例如梦网只能推送短信、edm只能推送邮件),且消息推送的成功率无法保障。
发明内容
本申请实施例提供一种消息推送方法、装置、计算机设备及存储介质,考虑到了用户实际的需求,提高了消息推送的成功率,另外基于消息中间件异步推送的方式可以应用于海量消息推送的业务场景。
一方面,本申请提供一种消息推送方法,所述消息推送方法包括:
获取消息推送请求,所述消息推送请求中包括消息内容和推送对象的信息;
基于所述消息内容,以及预先获取的多个消息渠道对应的消息推送模板,生成所述多个消息渠道对应的推送消息;
获取所述多个消息渠道的消息推送优先级;
基于所述多个消息渠道的消息推送优先级,依次以所述多个消息渠道中的一个消息渠道为目标消息渠道,分别以所述推送对象中一个对象为目标推送对象,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中一个消息渠道模拟推送消息成功为止,确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道;
通过所述有效消息渠道,向目标推送对象异步推送所述有效消息渠道对应的推送消息。
在本申请一些实施例中,所述消息推送请求中包括消息渠道选择信息,在所述基于所述消息内容,以及预先获取的多个消息渠道对应的消息推送模板,生成所述多个消息渠道对应的推送消息之前,所述方法还包括:
根据所述消息渠道选择信息,确定所述多个消息渠道;
获取所述多个消息渠道对应的消息推送模板。
在本申请一些实施例中,所述获取所述多个消息渠道的消息推送优先级,包括:
获取预置的所述多个消息渠道的消息推送优先级;
或者,
根据所述消息推送请求,确定当前消息推送的业务场景;基于所述消息推送的业务场景,确定所述多个消息渠道的消息推送优先级。
在本申请一些实施例中,所述模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中一个消息渠道模拟推送消息成功为止,确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道,包括:
校验所述目标消息渠道对应的推送消息是否合法;
若合法,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中一个消息渠道模拟推送消息成功为止;
确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道。
在本申请一些实施例中,所述模拟向目标推送对象推送所述目标消息渠道对应的推送消息,包括:
调用所述目标消息渠道对应的消息推送接口,模拟向目标推送对象推送所述目标消息渠道对应的推送消息;
监听模拟推送所述目标消息渠道对应的推送消息的真实状态,确定所述目标消息渠道是否模拟推送消息成功。
在本申请一些实施例中,所述方法还包括:
在确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道之后,将所述有效消息渠道对应的推送消息保存到预设的消息数据库。
在本申请一些实施例中,所述通过所述有效消息渠道,向目标推送对象异步推送所述有效消息渠道对应的推送消息,包括:
从所述消息数据库中获取所述有效消息渠道对应的推送消息;
获取所述目标推送对象在所述有效消息渠道的联系方式;
调用预设的消息中间件,通过所述联系方式,向目标推送对象异步推送所述有效消息渠道对应的推送消息。
另一方面,本申请提供一种消息推送装置,所述装置包括:
第一获取单元,用于获取消息推送请求,所述消息推送请求中包括消息内容和推送对象的信息;
生成单元,用于基于所述消息内容,以及预先获取的多个消息渠道对应的消息推送模板,生成所述多个消息渠道对应的推送消息;
第二获取单元,用于获取所述多个消息渠道的消息推送优先级;
模拟推送单元,用于基于所述多个消息渠道的消息推送优先级,依次以所述多个消息渠道中的一个消息渠道为目标消息渠道,分别以所述推送对象中一个对象为目标推送对象,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中一个消息渠道模拟推送消息成功为止,确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道;
推送单元,用于通过所述有效消息渠道,向目标推送对象异步推送所述有效消息渠道对应的推送消息。
在本申请一些实施例中,所述消息推送请求中包括消息渠道选择信息,所述装置还包括模版获取单元,所述模版获取单元用于:在所述基于所述消息内容,以及预先获取的多个消息渠道对应的消息推送模板,生成所述多个消息渠道对应的推送消息之前,根据所述消息渠道选择信息,确定所述多个消息渠道;获取所述多个消息渠道对应的消息推送模板。
在本申请一些实施例中,所述第二获取单元具体用于:
获取预置的所述多个消息渠道的消息推送优先级;
或者,
根据所述消息推送请求,确定当前消息推送的业务场景;基于所述消息推送的业务场景,确定所述多个消息渠道的消息推送优先级。
在本申请一些实施例中,所述模拟推送单元具体用于:
校验所述目标消息渠道对应的推送消息是否合法;
若合法,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中一个消息渠道模拟推送消息成功为止;
确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道。
在本申请一些实施例中,所述模拟推送单元具体用于:
调用所述目标消息渠道对应的消息推送接口,模拟向目标推送对象推送所述目标消息渠道对应的推送消息;
监听模拟推送所述目标消息渠道对应的推送消息的真实状态,确定所述目标消息渠道是否模拟推送消息成功。
在本申请一些实施例中,所述装置还包括保存单元,所述保存单元用于:
确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道之后,将所述有效消息渠道对应的推送消息保存到预设的消息数据库。
在本申请一些实施例中,所述推送单元具体用于:
从所述消息数据库中获取所述有效消息渠道对应的推送消息;
获取所述目标推送对象在所述有效消息渠道的联系方式;
调用预设的消息中间件,通过所述联系方式,向目标推送对象异步推送所述有效消息渠道对应的推送消息。
另一方面,本申请还提供一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现所述的消息推送方法。
另一方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行所述的消息推送方法中的步骤。
本申请实施例中,在推送消息之前,生成多个不同消息渠道的推送消息,基于获取的多个消息渠道的消息推送优先级,模拟推送消息,通过消息推送优先级来推送消息考虑到了用户实际的需求,先模拟推送消息确定有效消息渠道,再通过有效消息渠道来推送消息,提高了消息推送的成功率,另外由于不同消息渠道对应的***不同,异步推送的方式可以应用于海量消息推送的业务场景。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的消息推送***的场景示意图;
图2是本申请实施例提供的消息推送平台实现的一个实施例架构示意图;
图3是本申请实施例中提供的消息推送方法的一个实施例流程示意图;
图4是本申请实施例中提供的步骤304的一个实施例流程示意图;
图5是本申请实施例中提供的步骤305的一个实施例流程示意图;
图6是本申请实施例中提供的消息推送的一个具体场景示意图;
图7是本申请实施例中提供的消息推送的另一个具体场景示意图;
图8是本申请实施例中提供的消息推送装置的一个实施例结构示意图;
图9是本申请实施例中提供的计算机设备的一个实施例结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本申请中,“示例性”一词用来表示“用作例子、例证或说明”。本申请中被描述为“示例性”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本申请,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本申请。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本申请的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。
本申请实施例提供一种消息推送方法、装置、服务器及存储介质,以下分别进行详细说明。
请参阅图1,图1为本申请实施例所提供的消息推送***的场景示意图,该消息推送***可以包括终端100和计算机设备200,终端100和计算机设备200网络连接,计算机设备200中集成有本申请实施例中描述的消息推送装置,如图1中的计算机设备200,终端100可以与计算机设备200进行数据交互,终端100中可以设置有用于接收消息推送装置推送消息的消息接收装置,消息接收装置可以是应用客户端,例如及时通讯客户端,企业客户端,邮件客户端,浏览器客户端等,也可以是终端100中的短信接收模块。
本申请实施例中计算机设备200主要用于获取消息推送请求,所述消息推送请求中包括消息内容和推送对象的信息;基于所述消息内容,以及预先获取的多个消息渠道对应的消息推送模板,生成所述多个消息渠道对应的推送消息;获取所述多个消息渠道的消息推送优先级;基于所述多个消息渠道的消息推送优先级,依次以所述多个消息渠道中的一个消息渠道为目标消息渠道,以推送对象中一个对象为目标推送对象,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中一个消息渠道模拟推送消息成功为止,确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道;通过所述有效消息渠道,向目标推送对象异步推送所述有效消息渠道对应的推送消息。
本申请实施例中,该计算机设备200可以是独立的服务器,也可以是服务器组成的服务器网络或服务器集群,例如,本申请实施例中所描述的计算机设备200,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云服务器。其中,云服务器由基于云计算(CloudComputing)的大量计算机或网络服务器构成。本申请的实施例中,服务器与用户终端之间可通过任何通信方式实现通信,包括但不限于,基于第三代合作伙伴计划(3rd Generation Partnership Project,3GPP)、长期演进(Long TermEvolution,LTE)、全球互通微波访问(Worldwide Interoperability for MicrowaveAccess,WiMAX)的移动通信,或基于TCP/IP协议族(TCP/IP Protocol Suite,TCP/IP)、用户数据报协议(User Datagram Protocol,UDP)的计算机网络通信等。
可以理解的是,本申请实施例中所使用的终端100可以是既包括接收和发射硬件的设备,即具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备。具体的终端100具体可以是台式终端或移动终端,终端100具体还可以是手机、平板电脑、笔记本电脑等中的一种。
本领域技术人员可以理解,图1中示出的应用环境,仅仅是与本申请方案一种应用场景,并不构成对本申请方案应用场景的限定,其他的应用环境还可以包括比图1中所示更多或更少的终端,或者服务器网络连接关系,例如图1中仅示出1个服务器和2个终端,可以理解的,该消息推送***还可以包括一个或多个与服务器网络连接的其他终端,具体此处不作限定。
另外,如图1所示,该消息推送***还可以包括存储器300,用于存储推送消息及消息请求等信息。例如存储器中可以存储有公共服务组件,公共服务组件可以包括消息数据库、消息推送模版数据库、消息控制数据库或者消息中间件,其中,消息数据库用于消息记录的存储,消息推送模版数据库用于存储不同消息渠道的消息推送模板,例如微信、邮件、短信或企业内部消息渠道对应的消息推送模版,消息控制数据库用于存储消息控制指令,消息中间件用于存储消息推送请求,并接受计算机设备200的异步消费请求并推送消息,具体的,消息数据库、消息推送模版数据库、消息控制数据库可以是不同类型的消息数据库,例如消息数据库可以是HBase,消息推送模版数据库可以是MySQL数据库,消息控制数据库可以是Redis,消息中间件可以是RocketMQ。
HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。MySQL是一种关系型数据库管理***,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。RocketMQ是一个分布式消息传递和流媒体平台,具有低延迟、高性能和可靠性、万亿级别的容量和灵活的可伸缩性,具有海量消息处理能力。
可以理解的是,上述消息数据库、消息推送模版数据库、消息控制数据库或者消息中间件等仅为举例,在实际应用中可以使用其他相同类型的其他数据库或中间件,例如消息中间件还可以是ActiveMQ或RabbitMQ。
需要说明的是,图1所示的消息推送***的场景示意图仅仅是一个示例,本申请实施例描述的消息推送***以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着消息推送***的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
基于上述消息推送***,本申请实施例中提供消息推送***对应的消息推送平台,如图2所示,为本发明实施例中消息推送平台实现的一个实施例架构示意图,图2中,用户通过管理Web配置消息推送模版,通过API消息接口推送的消息首先到达公共网关,再到达消息推送平台的应用层;上图中的应用层由消息推送平台装置的各个功能模块构成,这些模块相互配合,共同完成消息的推送;公共服务组件主要为应用层提供基础服务,比如消息记录的存储(HBase)、消息推送模板的存储(MySQL)、消息控制(Redis),推送子***负责推送各个消息渠道的消息,是消息推送平台依赖的外部***。
如图3所示,为本申请实施例中消息推送方法的一个实施例流程示意图,该消息推送方法可以包括如下步骤301~305,具体如下:
301、获取消息推送请求。
上述消息推送请求包括推送业务参数,具体的,推送业务参数中包括至少二个必填项,即所述消息推送请求中包括消息内容和推送对象的信息,作为具体的示例,推送业务参数中的必填项可以包括以下至少两种,例如包括:业务标识(例如业务编号)、防重标识(例如防重唯一ID)、模板标识(用于确定相应的消息推送模板)、推送对象的信息(例如用户名和手机号码)、消息内容。推送业务参数数中还可以包括以下一种或多种信息以作为选填项:推送消息发送截止时间、关联标识(例如关联记录ID,用于关联与该推送消息发送请求相关的记录,方便查询)、扩展内容(动态扩展的内容)。
其中,消息内容为消息推送的具体内容,可以是用户在计算机设备的Web管理界面编辑输入或选择的,推送对象的信息包括推送对象的联系方式,推送对象的联系方式可以是用户单独一个个选择后确定的,例如用户分别选择手机号,及时通信应用标识(如微信号,QQ号等),企业内部员工号,邮箱等,也可以是通过选择用户群组之后,确定用户群组内所有对象为推送对象,然后获取推送对象的联系方式,用户群组可以是目标区域(如某地区)的用户群组,目标年龄段(如某个年龄段)的用户群组,目标性别(如性别男)的用户群组,或者具有目标属性(例如爱好包括羽毛球)的用户群组等。
需要说明的是,本申请实施例中,用户对应的用户群组,可以预先按照性别,区域,年龄段等划分好,同一个用户可以划分到不同的用户群组,可以理解的是,用户对应的用户群组还可以基于其他类型的用户画像划分出更多的群组,例如按照用户的喜好划分一个或多个不同的用户群组等,具体此处不作限定。
本申请实施例中,在消息推送***(如存储器300)中可以预先维护一个或多个存储用户联系方式的表,例如消息推送***可以维护一张存储用户联系方式的联系表,推送对象的联系方式可以是用户在该联系表中查询用户或用户群组得到,在该联系表中又可以根据用户类型的不同维护多张不同的表格,以服务型企业为例,在该联系表中又可以维护两张表,分别是存储企业会员信息的会员表和企业员工信息的员工表,其中,会员表可以包括会员手机号和微信号的对应关系,员工表可以包括员工工号和邮箱及手机号的对应关系等。
存储用户联系方式的联系表可以是Hive表,Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive表将用户联系方式对应的元数据保存在关系数据库(如本申请的MySQL)中,可以大大减少了在用户联系方式查询过程中执行语义检查的时间。
需要说明的是,本申请实施例中,推送对象的信息可以包括推送对象在上述预设的联系表中的联系方式,同时还可以包括基于推送对象在上述预设的联系表中的联系方式,通过预设其他渠道搜索到的用户的联系方式,其中,预设其他渠道可以是合理开放用户信息的其他业务***。
为了提升海量数据下的消息查询速度,本申请实施例中,存储用户联系方式的联系表可以是Hive表,同时,还可以将Hive表提交到Elasticsearch,利用Elasticsearch进行用户联系方式的查询,此时,推送对象的联系方式可以是用户在Elasticsearch查询用户或用户群组得到,用户输入一个推送对象的联系方式,即可在Elasticsearch查找到推送对象的其他联系方式。
Elasticsearch是一个分布式、高扩展、高实时的搜索与数据分析引擎,它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
302、基于所述消息内容,以及预先获取的多个消息渠道对应的消息推送模板,生成所述多个消息渠道对应的推送消息。
其中,消息渠道为推送消息的渠道,例如短信,企业应用,及时通信应用邮件等。具体的,本申请实施例中可以预先获取的多个消息渠道对应的消息推送模板,将消息内容分别填入预先获取的多个消息渠道对应的消息推送模板中,即可生成所述多个消息渠道对应的推送消息。
本申请实施例中,可以对所述消息推送模板进行管理,例如统一配置消息推送基础模板,消息推送基础模版具有固定格式(如下文描述的业务名称、模板名称、模板类型、消息渠道、通知标题、模板标识、模板内容和加密字段等),通过在消息推送基础模版中设置不同的消息渠道的属性,可以配置得到不同消息渠道的消息推送模版,例如可以在消息推送基础模版的基础上添加和修改选项,得到不同消息渠道的消息推送模版,不需要每个对接的业务独立进行消息推送模板的管理和维护,通过配置消息推送基础模版,在消息推送基础模版的基础上添加或修改即可得到其他不同消息推送模版。
在一些的实施例中,可以预先录入不同的消息渠道对应的消息推送模版,本申请实施例提供的消息推送模板录入界面可以包括:业务名称、模板名称、模板类型、消息渠道、通知标题、模板标识、模板内容和加密字段。其中,消息内容中的动态字段则用特殊符号:${字段名}来表示;消息通知内容中的敏感字段可以设置成加密字段,多个敏感字段也支持加密存储,加密字段与动态字段的字段名保持一致;根据加密字段的设计消息通知发送记录在存储消息通知内容时其加密字段是经过加密存储的,在发送给推送对象的时候需要对加密字段进行解密处理。
303、获取所述多个消息渠道的消息推送优先级。
其中,所述获取所述多个消息渠道的消息推送优先级有多种方式,具体可以包括如下两种:
(1)获取预置的所述多个消息渠道的消息推送优先级。
(2)根据所述消息推送请求,确定当前消息推送的业务场景;基于所述消息推送的业务场景,确定所述多个消息渠道的消息推送优先级。
具体的,消息推送的业务场景为消息推送对象对应的业务场景,可以包括企业内推送场景,客户推送场景,混合推送场景等多种消息推送场景,例如当消息推送请求为针对企业内员工的推送时,即为企业内推送场景,当消息推送请求为针对企业客户时,即为客户推送场景,当消息推送请求针对企业员工和企业客户时,为混合推送场景。
在一些实施方式中,消息推送请求中标识业务场景的业务类型,根据所述消息推送请求,确定当前消息推送的业务场景消息可以是:根据消息推送请求中的业务类型直接确定当前消息推送的业务场景。
在另一些实施方式中,也可以是:基于消息推送请求中的消息内容,识别当前消息推送的业务场景,例如,若当前消息内容中包括“客户”、“顾客”、“会员”等与客户相关联的信息的时候,可以识别当前消息推送的业务场景为客户推送场景,若当前消息内容中包括“员工”、“同事”、“企业名称”等与企业相关联的信息的时候,可以识别当前消息推送的业务场景为企业内推送场景。
当然,这种自动识别场景可能准确率不高,进一步可以结合自动识别和用户确认的方式来确定当前消息推送的业务场景,例如先根据消息内容自动识别当前消息推送的业务场景,再将识别的业务场景反馈给用户进行确认,以提高自动识别的准确性。
此外,在确定消息推送的业务场景之后,可以基于所述消息推送的业务场景,确定所述多个消息渠道的消息推送优先级,具体的,基于所述消息推送的业务场景,确定所述多个消息渠道的消息推送优先级可以是:将多个消息渠道中与所述业务场景贴合的消息渠道,设置更高的优先级。
例如多个消息渠道中包括微信,邮件,短信和企业应用,若业务场景为企业内推送场景,则企业应用为企业内推送场景最贴合的消息渠道,将企业应用的优先级可以设置为最高。若业务场景为客户推送场景,由于一般用户对微信的粘度较高,将微信的优先级可以设置为最高。可以理解的是,本申请实施例中,可以预先针对不同的业务场景预先配置消息渠道的优先级,在确定业务场景之后,可以直接基于预先配置的消息渠道的优先级,来确定所述多个消息渠道的优先级。
304、基于所述多个消息渠道的消息推送优先级,依次以所述多个消息渠道中的一个消息渠道为目标消息渠道,分别以所述推送对象中一个对象为目标推送对象,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中一个消息渠道模拟推送消息成功为止,确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道。
其中,有效消息渠道为可以有效推送消息到推送对象的消息渠道。例如,通过微信可以推送消息到用户A,则表示,微信为推送消息给用户A的有效消息渠道。
本申请实施例,所述推送对象可以是多个,此时该方案即针对多对多场景的,即基于所述多个消息渠道的消息推送优先级,模拟向多个推送对象推送消息。
基于所述多个消息渠道的消息推送优先级,依次以所述多个消息渠道中的一个消息渠道为目标消息渠道,分别以所述推送对象中一个对象为目标推送对象,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中一个消息渠道模拟推送消息成功为止,确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道,具体可以是:
对于所述推送对象多个推送对象来说,分别以所述推送对象中一个对象为目标推送对象,例如假设所述推送对象中包括推送对象1、推送对象2、推送对象3,分别以推送对象1、推送对象2、推送对象3为目标推送对象;
对目标推送对象,依次模拟推送多个消息渠道对应的推送消息,具体是,按照所述多个消息渠道的消息推送优先级,依次向目标推送对象模拟推送所述多个消息渠道中各消息渠道对应的推送消息,例如,多个消息渠道包括消息渠道1、消息渠道2、消息渠道3,假设消息推送优先级由高到低依次为消息渠道2,消息渠道1,消息渠道3,前面步骤中会得到这三个消息渠道对应的推送消息,此时先向目标推送对象模拟推送消息渠道2对应的推送消息,若不成功,再向目标推送对象模拟推送消息渠道1对应的推送消息,若还不成功,向目标推送对象模拟推送消息渠道3对应的推送消息。
需要说明的是,若多个消息渠道中一个消息渠道对应的推送消息模拟推送成功,则停止后续更低优先级消息渠道对应的推送消息的推送,同样以上面三个消息渠道为例,若向目标推送对象模拟推送消息渠道2对应的推送消息已成功,则后续优先级低于消息渠道2的消息渠道1,消息渠道3的推送消息,则不需要再模拟推送了,一方面避免了推送资源的浪费以及多渠道推送对用户的骚扰,另一方面保证了最高优先级的有效消息渠道的消息推送,保障了平台商权益。
305、通过所述有效消息渠道,向目标推送对象异步推送所述有效消息渠道对应的推送消息。
其中,本申请实施例中,异步推送是采用预设的消息中间件推送消息。
本申请实施例中,在推送消息之前,生成多个不同消息渠道的推送消息,基于获取的多个消息渠道的消息推送优先级,模拟推送消息,通过消息推送优先级来推送消息考虑到了用户实际的需求,先模拟推送消息确定有效消息渠道再推送消息,提高了消息推送的成功率,另外由于不同消息渠道对应的***不同,基于消息中间件的异步推送的方式可以应用于海量消息推送的业务场景。
在本申请一些实施方式中,所述消息推送请求中包括消息渠道选择信息,在步骤302中,所述基于所述消息内容,以及预先获取的多个消息渠道对应的消息推送模板,生成所述多个消息渠道对应的推送消息之前,所述方法还包括:根据所述消息渠道选择信息,确定所述多个消息渠道;获取所述多个消息渠道对应的消息推送模板。
其中,消息渠道选择信息可以包括用户选择的多个消息渠道的标识,基于该消息渠道的标识,确定所述多个消息渠道。具体的,例如,多个消息渠道包括微信,邮件,短信,企业应用,可以分别对多个消息渠道编号为1,2,3,4,当用户选择了在选择界面选择微信,邮件,短信等三个消息渠道时,即对应为消息渠道编号1,2,3,基于该消息渠道的标识,确定所述多个消息渠道包括微信,邮件,短信。
在本申请一些实施例中,如图4所示,步骤304中所述模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中的一个消息渠道模拟推送消息成功为止,确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道,可以包括如下步骤401~403,具体如下:
401、校验所述目标消息渠道对应的推送消息是否合法。
具体的,校验所述目标消息渠道对应的推送消息是否合法主要是判断推送对象的格式的正确性、消息推送模板是否合法。若均合法,则所述目标消息渠道对应的推送消息合法,如未通过校验,就给用户返回校验失败的相关提示信息。
402、若所述目标消息渠道对应的推送消息合法,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中的一个消息渠道模拟推送消息成功为止。
403、确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道。
本实施例中,通过校验和模拟推送,可以确定推送消息的有效性,保证了后续推送的成功率。
在本申请一些实施例中,所述步骤402中模拟向目标推送对象推送所述目标消息渠道对应的推送消息,可以包括:调用所述目标消息渠道对应的消息推送接口,模拟向目标推送对象推送所述目标消息渠道对应的推送消息;监听模拟推送所述目标消息渠道对应的推送消息的真实状态,确定所述目标消息渠道是否模拟推送消息成功。
考虑到消息推送的性能,本申请实施例中消息推送***与其他***之间的调用均为异步。由于消息推送时,是调用消息渠道对应的***接口,推送完成后会将推送结果写入到消息数据库。因此,本申请实施例中,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,可以是预先为目标推送对象建立一个模拟对象,在消息推送***内模拟向目标推送对象的模拟对象进行消息推送,此时,该消息推送结果将写入到消息数据库(如HBase),通过监听消息数据库中消息推送的消息推送结果,确定消息推送的真实状态,从而确定目标消息渠道模拟推送消息是否成功。
模拟推送是向推送对象预先建立的模拟对象,在消息推送***内部的模拟推送,模拟对象是基于消息推送***内部建立,是模拟消息推送对象的属性信息,例如手机号,通讯应用账号等,不对外发送信息,主要是模拟消息推送在消息推送***内部的推送实现流程。
在确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道之后,将所述有效消息渠道对应的推送消息保存到预设的消息数据库,预设的消息数据库可以如上实施例中描述的HBase。
此时,如图5所示,所述步骤305中通过所述有效消息渠道,向目标推送对象异步推送所述有效消息渠道对应的推送消息,可以包括如下步骤501~503,具体如下:
501、从所述消息数据库中获取所述有效消息渠道对应的推送消息。
502、获取所述目标推送对象在所述有效消息渠道的联系方式。
其中,获取所述目标推送对象在所述有效消息渠道的联系方式可以基于步骤101中推送对象的信息获取。
503、调用预设的消息中间件,通过所述联系方式,向目标推送对象异步推送所述有效消息渠道对应的推送消息。
下面结合一具体应用场景举例描述本申请消息推送方法,具体如图6、图7所示,分别为消息推送的2个具体场景示意图:计算机设备中可以包括admin模块、receive模块、send模块、report模块、callback模块,分别对应图6中的管理Web、接收消息、发送消息、消息报表、消息回调等业务功能。
消息数据库HBase用于消息记录的存储,消息推送模版数据库MySQL用于存储不同消息渠道的消息推送模板,例如微信、邮件、短信或企业内部消息渠道对应的消息推送模版,消息控制数据库Redis用于存储消息控制指令,消息中间件RocketMQ用于存储消息推送请求,并接受计算机设备的异步消费请求并推送消息。
消息推送具体实现流程如下;
(1)当用户需要推送消息时,admin模块通过API接口发送消息推送请求,消息推送请求中可以包括消息内容和推送对象的信息。
在Hive表中维护了两张表,分别是会员手机号和微信号的对应关系、员工工号和邮箱及手机号的对应关系,每天定时全量更新数据到Hive,Hive表导数到Elasticsearch,以提升海量数据下的消息查询速度,send模块根据收信人类型,从Elasticsearch中获取收信人的其余联系方式,最后可以得到完整的推送对象的信息。
(2)从MySQL中获取业务模版下各个消息渠道对应的消息推送模板,一个业务模板下可以有多个消息推送模版,如图7所示,多个消息渠道模版可以包括消息推送模版1(对应计算机设备中应用1子***)、消息推送模版2(对应计算机设备中应用2子***)和消息推送模版3(对应计算机设备中短信子***),将消息推送请求中消息内容填入多个消息渠道的消息推送模版,得到多个消息渠道的推送消息。
(3)admin模块调用API接口测试推送多个消息渠道的推送消息,由receive模块接收,并校验消息,主要是判断推送消息格式的正确性、消息推送模板是否合法。消息如未通过校验,就给用户返回调用接口失败的响应报文;否则,就按照消息的类型加入RocketMQ的待处理消息队列中。
(4)send模块异步消费RocketMQ中的消息请求。首先,send模块需要从MySQL中获取对应的消息推送模板,并获取消息推送请求中的推送业务参数,以匹配消息推送模板内容中的消息占位符,得到完整的推送消息;其次,根据消息控制规则过滤每一条推送消息,例如判断推送消息是否重复。
(5)send模块基于多个消息渠道的消息推送优先级,依次以多个消息渠道中的一个消息渠道为目标消息渠道,以推送对象中一个对象为目标推送对象,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至多个消息渠道中一个消息渠道模拟推送消息成功为止,确定模拟推送消息成功的消息渠道为目标推送对象的有效消息渠道。
具体的,如果各个消息渠道的优先级不同,则按照消息渠道优先级数值大小从高到低的方式模拟推送消息,有消息推送成功,则立即停止模拟推送。
(6)send模块将过滤后的推送消息推送到各有效消息渠道对应的子***,并将推送结果写入到HBase,完成消息推送。
(7)子***的上行消息可以通过callback模块推送给用户,例如上行短信。
(8)用户可以通过report模块查看每一条推送消息的推送状态,消息推送***在一定时间范围内,按照***编码或者收件人可以查询推送消息。
本实施例中,消息推送成功是指调用下游子***接口是成功的,但是消息未必能成功推送到用户的应用账号或手机号上。主要原因是,考虑到消息推送的性能,***与***之间的调用均为异步。此时,send模块假定消息推送成功,并且由callback模块提供接口给下游***,以监听消息推送的真实状态;
若callback监听到消息推送成功,则说明消息已经由高优先级的消息推送模板推送,不再继续推送。否则,***根据回调消息的ID,在HBASE中找到推送记录,通过RocketMQ异步推送。
为了更好实施本申请实施例中消息推送方法,在消息推送方法基础之上,本申请实施例中还提供一种消息推送装置,如图8所示,所述消息推送装置800包括:
第一获取单元801,用于获取消息推送请求,所述消息推送请求中包括消息内容和推送对象的信息;
生成单元802,用于基于所述消息内容,以及预先获取的多个消息渠道对应的消息推送模板,生成所述多个消息渠道对应的推送消息;
第二获取单元803,用于获取所述多个消息渠道的消息推送优先级;
模拟推送单元804,用于基于所述多个消息渠道的消息推送优先级,依次以所述多个消息渠道中的一个消息渠道为目标消息渠道,分别以所述推送对象中一个对象为目标推送对象,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中一个消息渠道模拟推送消息成功为止,确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道;
推送单元805,用于通过所述有效消息渠道,向目标推送对象异步推送所述有效消息渠道对应的推送消息。
本申请实施例中,在推送消息之前,生成多个不同消息渠道的推送消息,基于获取的多个消息渠道的消息推送优先级,模拟推送消息,通过消息推送优先级来推送消息考虑到了用户实际的需求,先模拟推送消息确定有效消息渠道再推送消息,提高了消息推送的成功率,另外由于不同消息渠道对应的***不同,基于消息中间件的异步推送的方式可以应用于海量消息推送的业务场景。
在本申请一些实施例中,所述消息推送请求中包括消息渠道选择信息,所述装置还包括模版获取单元,所述模版获取单元用于:在所述基于所述消息内容,以及预先获取的多个消息渠道对应的消息推送模板,生成所述多个消息渠道对应的推送消息之前,根据所述消息渠道选择信息,确定所述多个消息渠道;获取所述多个消息渠道对应的消息推送模板。
在本申请一些实施例中,所述第二获取单元803具体用于:
获取预置的所述多个消息渠道的消息推送优先级;
或者,
根据所述消息推送请求,确定当前消息推送的业务场景;基于所述消息推送的业务场景,确定所述多个消息渠道的消息推送优先级。
在本申请一些实施例中,所述模拟推送单元804具体用于:
校验所述目标消息渠道对应的推送消息是否合法;
若合法,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中一个消息渠道模拟推送消息成功为止;
确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道。
在本申请一些实施例中,所述模拟推送单元804具体用于:
调用所述目标消息渠道对应的消息推送接口,模拟向目标推送对象推送所述目标消息渠道对应的推送消息;
监听模拟推送所述目标消息渠道对应的推送消息的真实状态,确定所述目标消息渠道是否模拟推送消息成功。
在本申请一些实施例中,所述装置还包括保存单元,所述保存单元用于:
确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道之后,将所述有效消息渠道对应的推送消息保存到预设的消息数据库。
在本申请一些实施例中,所述推送单元805具体用于:
从所述消息数据库中获取所述有效消息渠道对应的推送消息;
获取所述目标推送对象在所述有效消息渠道的联系方式;
调用预设的消息中间件,通过所述联系方式,向目标推送对象异步推送所述有效消息渠道对应的推送消息。
本申请实施例还提供一种计算机设备,其集成了本申请实施例所提供的任一种消息推送装置,所述计算机设备包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行上述消息推送方法实施例中任一实施例中所述的消息推送方法中的步骤。
本申请实施例还提供一种计算机设备,其集成了本申请实施例所提供的任一种消息推送装置。如图9所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器901、一个或一个以上计算机可读存储介质的存储器902、电源903和输入单元904等部件。本领域技术人员可以理解,图9中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器901是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器901可包括一个或多个处理核心;优选的,处理器901可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器901中。
存储器902可用于存储软件程序以及模块,处理器901通过运行存储在存储器902的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器902还可以包括存储器控制器,以提供处理器901对存储器902的访问。
计算机设备还包括给各个部件供电的电源903,优选的,电源903可以通过电源管理***与处理器901逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源903还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元904,该输入单元904可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器901会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器902中,并由处理器901来运行存储在存储器902中的应用程序,从而实现各种功能,如下:
获取消息推送请求,所述消息推送请求中包括消息内容和推送对象的信息;基于所述消息内容,以及预先获取的多个消息渠道对应的消息推送模板,生成所述多个消息渠道对应的推送消息;获取所述多个消息渠道的消息推送优先级;基于所述多个消息渠道的消息推送优先级,依次以所述多个消息渠道中的一个消息渠道为目标消息渠道,以推送对象中一个对象为目标推送对象,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中一个消息渠道模拟推送消息成功为止,确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道;通过所述有效消息渠道,向目标推送对象异步推送所述有效消息渠道对应的推送消息。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行本申请实施例所提供的任一种消息推送方法中的步骤。例如,所述计算机程序被处理器进行加载可以执行如下步骤:
获取消息推送请求,所述消息推送请求中包括消息内容和推送对象的信息;基于所述消息内容,以及预先获取的多个消息渠道对应的消息推送模板,生成所述多个消息渠道对应的推送消息;获取所述多个消息渠道的消息推送优先级;基于所述多个消息渠道的消息推送优先级,依次以所述多个消息渠道中的一个消息渠道为目标消息渠道,以推送对象中一个对象为目标推送对象,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中一个消息渠道模拟推送消息成功为止,确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道;通过所述有效消息渠道,向目标推送对象异步推送所述有效消息渠道对应的推送消息。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对其他实施例的详细描述,此处不再赘述。
具体实施时,以上各个单元或结构可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元或结构的具体实施可参见前面的方法实施例,在此不再赘述。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种消息推送方法、装置、计算机设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种消息推送方法,其特征在于,所述消息推送方法包括:
获取消息推送请求,所述消息推送请求中包括消息内容和推送对象的信息;
基于所述消息内容,以及预先获取的多个消息渠道对应的消息推送模板,生成所述多个消息渠道对应的推送消息;
获取所述多个消息渠道的消息推送优先级;
基于所述多个消息渠道的消息推送优先级,依次以所述多个消息渠道中的一个消息渠道为目标消息渠道,分别以所述推送对象中一个对象为目标推送对象,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中一个消息渠道模拟推送消息成功为止,确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道;
通过所述有效消息渠道,向目标推送对象异步推送所述有效消息渠道对应的推送消息。
2.根据权利要求1所述的消息推送方法,其特征在于,所述消息推送请求中包括消息渠道选择信息,在所述基于所述消息内容,以及预先获取的多个消息渠道对应的消息推送模板,生成所述多个消息渠道对应的推送消息之前,所述方法还包括:
根据所述消息渠道选择信息,确定所述多个消息渠道;
获取所述多个消息渠道对应的消息推送模板。
3.根据权利要求1所述的消息推送方法,其特征在于,所述获取所述多个消息渠道的消息推送优先级,包括:
获取预置的所述多个消息渠道的消息推送优先级;
或者,
根据所述消息推送请求,确定当前消息推送的业务场景;基于所述消息推送的业务场景,确定所述多个消息渠道的消息推送优先级。
4.根据权利要求1所述的消息推送方法,其特征在于,所述模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中一个消息渠道模拟推送消息成功为止,确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道,包括:
校验所述目标消息渠道对应的推送消息是否合法;
若合法,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中一个消息渠道模拟推送消息成功为止;
确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道。
5.根据权利要求4所述的消息推送方法,其特征在于,所述模拟向目标推送对象推送所述目标消息渠道对应的推送消息,包括:
调用所述目标消息渠道对应的消息推送接口,模拟向目标推送对象推送所述目标消息渠道对应的推送消息;
监听模拟推送所述目标消息渠道对应的推送消息的真实状态,确定所述目标消息渠道是否模拟推送消息成功。
6.根据权利要求5所述的消息推送方法,其特征在于,所述方法还包括:
在确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道之后,将所述有效消息渠道对应的推送消息保存到预设的消息数据库。
7.根据权利要求6所述的消息推送方法,其特征在于,所述通过所述有效消息渠道,向目标推送对象异步推送所述有效消息渠道对应的推送消息,包括:
从所述消息数据库中获取所述有效消息渠道对应的推送消息;
获取所述目标推送对象在所述有效消息渠道的联系方式;
调用预设的消息中间件,通过所述联系方式,向目标推送对象异步推送所述有效消息渠道对应的推送消息。
8.一种消息推送装置,其特征在于,所述装置包括:
第一获取单元,用于获取消息推送请求,所述消息推送请求中包括消息内容和推送对象的信息;
生成单元,用于基于所述消息内容,以及预先获取的多个消息渠道对应的消息推送模板,生成所述多个消息渠道对应的推送消息;
第二获取单元,用于获取所述多个消息渠道的消息推送优先级;
模拟推送单元,用于基于所述多个消息渠道的消息推送优先级,依次以所述多个消息渠道中的一个消息渠道为目标消息渠道,分别以所述推送对象中一个对象为目标推送对象,模拟向目标推送对象推送所述目标消息渠道对应的推送消息,直至所述多个消息渠道中一个消息渠道模拟推送消息成功为止,确定模拟推送消息成功的消息渠道为所述目标推送对象的有效消息渠道;
推送单元,用于通过所述有效消息渠道,向目标推送对象异步推送所述有效消息渠道对应的推送消息。
9.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现权利要求1至7中任一项所述的消息推送方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1至7任一项所述的消息推送方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010588694.0A CN113839977B (zh) | 2020-06-24 | 2020-06-24 | 消息推送方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010588694.0A CN113839977B (zh) | 2020-06-24 | 2020-06-24 | 消息推送方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113839977A true CN113839977A (zh) | 2021-12-24 |
CN113839977B CN113839977B (zh) | 2024-04-19 |
Family
ID=78964585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010588694.0A Active CN113839977B (zh) | 2020-06-24 | 2020-06-24 | 消息推送方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113839977B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114301977A (zh) * | 2021-12-29 | 2022-04-08 | 未来电视有限公司 | 消息推送方法、装置、服务器及计算机刻度存储介质 |
CN114338793A (zh) * | 2021-12-29 | 2022-04-12 | 中电金信软件有限公司 | 消息推送方法、装置、电子设备及可读存储介质 |
CN114363408A (zh) * | 2021-12-31 | 2022-04-15 | 北京金堤科技有限公司 | 信息推送方法、装置、计算机可读介质及计算机设备 |
CN114721740A (zh) * | 2022-04-06 | 2022-07-08 | 平安国际融资租赁有限公司 | 消息触发方法、装置、设备及存储介质 |
CN115510366A (zh) * | 2022-11-21 | 2022-12-23 | 北京白龙马云行科技有限公司 | 业务消息推送方法、装置、计算机设备和存储介质 |
CN115604667A (zh) * | 2022-10-11 | 2023-01-13 | 广东欣农互联科技有限公司(Cn) | 消息发送方法、装置、计算机设备和存储介质 |
CN117093780A (zh) * | 2023-10-17 | 2023-11-21 | 北京智麟科技有限公司 | 一种多渠道消息推送方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030149853A1 (en) * | 2002-02-01 | 2003-08-07 | Chih-Chiang Wen | Receiver for a memory controller and method thereof |
US20090204666A1 (en) * | 2008-02-13 | 2009-08-13 | Microsoft Corporation | Push mechanism for efficiently sending aggregated data items to client |
CN105320660A (zh) * | 2014-06-05 | 2016-02-10 | 中国石油化工股份有限公司 | 数值模拟并行计算的作业自动提交方法及装置 |
CN108833261A (zh) * | 2018-06-19 | 2018-11-16 | 北京顺丰同城科技有限公司 | 一种基于Android平台客户端消息推送优化方法和装置 |
WO2018213143A1 (en) * | 2017-05-15 | 2018-11-22 | Qualcomm Incorporated | Prioritization and early decoding of control fields for polar codes |
WO2019019384A1 (zh) * | 2017-07-27 | 2019-01-31 | 上海壹账通金融科技有限公司 | 消息推送方法、装置、计算机设备和存储介质 |
CN110460645A (zh) * | 2015-08-04 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 一种信息推送方法和装置 |
CN111327519A (zh) * | 2020-02-17 | 2020-06-23 | 北京四信数字技术有限公司 | 一种多渠道消息内容的发送方法、装置、设备及存储介质 |
-
2020
- 2020-06-24 CN CN202010588694.0A patent/CN113839977B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030149853A1 (en) * | 2002-02-01 | 2003-08-07 | Chih-Chiang Wen | Receiver for a memory controller and method thereof |
US20090204666A1 (en) * | 2008-02-13 | 2009-08-13 | Microsoft Corporation | Push mechanism for efficiently sending aggregated data items to client |
CN105320660A (zh) * | 2014-06-05 | 2016-02-10 | 中国石油化工股份有限公司 | 数值模拟并行计算的作业自动提交方法及装置 |
CN110460645A (zh) * | 2015-08-04 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 一种信息推送方法和装置 |
WO2018213143A1 (en) * | 2017-05-15 | 2018-11-22 | Qualcomm Incorporated | Prioritization and early decoding of control fields for polar codes |
WO2019019384A1 (zh) * | 2017-07-27 | 2019-01-31 | 上海壹账通金融科技有限公司 | 消息推送方法、装置、计算机设备和存储介质 |
CN108833261A (zh) * | 2018-06-19 | 2018-11-16 | 北京顺丰同城科技有限公司 | 一种基于Android平台客户端消息推送优化方法和装置 |
CN111327519A (zh) * | 2020-02-17 | 2020-06-23 | 北京四信数字技术有限公司 | 一种多渠道消息内容的发送方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
姜翔;: "消息推送技术研究与未来展望", 电信网技术, no. 04, 15 April 2018 (2018-04-15), pages 80 - 82 * |
张辉 等: "基于动态推送的时间优先级的电力通信现场运维信息推送方法", 计算机技术与自动化, vol. 38, no. 2, 30 June 2019 (2019-06-30), pages 58 - 63 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114301977A (zh) * | 2021-12-29 | 2022-04-08 | 未来电视有限公司 | 消息推送方法、装置、服务器及计算机刻度存储介质 |
CN114338793A (zh) * | 2021-12-29 | 2022-04-12 | 中电金信软件有限公司 | 消息推送方法、装置、电子设备及可读存储介质 |
CN114338793B (zh) * | 2021-12-29 | 2024-01-16 | 中电金信软件有限公司 | 消息推送方法、装置、电子设备及可读存储介质 |
CN114363408A (zh) * | 2021-12-31 | 2022-04-15 | 北京金堤科技有限公司 | 信息推送方法、装置、计算机可读介质及计算机设备 |
CN114721740A (zh) * | 2022-04-06 | 2022-07-08 | 平安国际融资租赁有限公司 | 消息触发方法、装置、设备及存储介质 |
CN115604667A (zh) * | 2022-10-11 | 2023-01-13 | 广东欣农互联科技有限公司(Cn) | 消息发送方法、装置、计算机设备和存储介质 |
CN115604667B (zh) * | 2022-10-11 | 2023-07-21 | 广东欣农互联科技有限公司 | 消息发送方法、装置、计算机设备和存储介质 |
CN115510366A (zh) * | 2022-11-21 | 2022-12-23 | 北京白龙马云行科技有限公司 | 业务消息推送方法、装置、计算机设备和存储介质 |
CN117093780A (zh) * | 2023-10-17 | 2023-11-21 | 北京智麟科技有限公司 | 一种多渠道消息推送方法及装置 |
CN117093780B (zh) * | 2023-10-17 | 2024-01-26 | 北京智麟科技有限公司 | 一种多渠道消息推送方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113839977B (zh) | 2024-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113839977B (zh) | 消息推送方法、装置、计算机设备及存储介质 | |
US10701012B2 (en) | Method, apparatus and system for customer service information forwarding | |
US11171994B2 (en) | Tag-based security policy creation in a distributed computing environment | |
US10956379B2 (en) | Dynamic lifecycle management of temporary storage schemas | |
CN107103011B (zh) | 终端数据搜索的实现方法和装置 | |
CN111786984A (zh) | Pod通信连接方法、装置及电子设备、存储介质 | |
CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
CN114443940A (zh) | 一种消息订阅方法、装置及设备 | |
US20170139758A1 (en) | Nondeterministic Operation Execution Environment Utilizing Resource Registry | |
CN111752964A (zh) | 基于数据接口的数据处理方法及装置 | |
CN111782428B (zh) | 数据调用***以及方法 | |
CN117009430A (zh) | 数据管理方法、装置和存储介质及电子设备 | |
US20210141791A1 (en) | Method and system for generating a hybrid data model | |
US20210144048A1 (en) | Method and apparatus for outputting information | |
CN107347024A (zh) | 一种存储操作日志的方法和装置 | |
CN115114361B (zh) | 一种基于容器云平台统一接口的资源检索方法和*** | |
CN117539962B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US11949761B2 (en) | Techniques for distributed interface component generation | |
CN117478535B (zh) | 一种日志存储的方法和装置 | |
CN114979284B (zh) | 一种5g消息调度方法、装置及*** | |
CN114064619A (zh) | 一种数据维护方法及装置 | |
US20140310385A1 (en) | Method and server for pushing media file | |
US20130132478A1 (en) | Establishing Communication Among Parties Based on Location | |
CN117931813A (zh) | 一种湖仓元数据变更确定方法、装置、设备、介质 | |
CN105814559A (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 |