一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

消息推送方法、装置、服务器及计算机刻度存储介质与流程

2022-04-09 12:10:15 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,具体而言,涉及一种消息推送方法、装置、服务器及计算机刻度存储介质。


背景技术:

2.随着信息化的迅速发展,消息推送渠道与业务场景的日益丰富,消息的推送条件也逐渐复杂和多样化。
3.现有的消息推送渠道过于单一,且分布式系统拆分出不同的业务系统,在业务系统内对接各个渠道消息发送,容易导致功能重复,浪费开发成本。另外,面对不同的业务需求和复杂的业务场景,消息发送策略不够完备。
4.鉴于此,为了更好实现消息推送,需要对消息推动方法进行改进。


技术实现要素:

5.本发明的目的在于,针对上述现有技术中的不足,提供一种消息推送方法、装置、服务器及计算机刻度存储介质,以便更好实现多渠道消息推送。
6.为实现上述目的,本技术实施例采用的技术方案如下:
7.第一方面,本技术实施例提供了一种消息推送方法,包括:
8.接收消息生产节点发送的待推送消息、所述待推送消息对应的策略标识,以及所述待推送消息对应的目标用户的标识;
9.确定所述策略标识对应的消息发送策略为目标发送策略,所述目标发送策略中包括:主渠道标识以及发送参数;
10.采用所述发送参数,通过所述主渠道标识对应的第一渠道将所述待推送消息发送至所述目标用户对应的消息消费节点。
11.可选的,所述采用所述发送参数,通过所述主渠道标识对应的第一渠道将所述待推送消息发送至所述目标用户对应的消息消费节点,包括:
12.根据所述目标用户的标识,查询所述第一渠道中所述目标用户的渠道参数;
13.采用所述发送参数,通过所述第一渠道中所述目标用户的渠道参数,将所述待推送消息发送至所述目标用户对应的消息消费节点。
14.可选的,所述采用所述发送参数,通过所述主渠道标识对应的第一渠道将所述待推送消息发送至所述目标用户对应的消息消费节点之前,所述方法还包括:
15.接收所述消息生产节点发送的所述待推送消息对应的消息发送方式的参数;
16.若所述消息发送方式指示所述待推送消息具有预先指定的消息模板的标识,则根据所述消息模板对所述待推送消息的内容格式进行调整;
17.所述采用所述发送参数,通过所述主渠道标识对应的第一渠道将所述待推送消息发送至所述目标用户对应的消息消费节点,包括:
18.采用所述发送参数,通过所述第一渠道将内容格式调整后的消息发送至所述目标
用户对应的消息消费节点。
19.可选的,所述采用所述发送参数,通过所述主渠道标识对应的第一渠道将所述待推送消息发送至所述目标用户对应的消息消费节点之前,所述方法还包括:
20.若所述消息发送方式指示所述待推送消息不具有预先制定的消息模板的标识,则根据预设的多个渠道的消息内容格式,分别对所述待推送消息的内容格式进行调整,得到所述多个渠道对应的目标消息;
21.所述采用所述发送参数,通过所述主渠道标识对应的第一渠道将所述待推送消息发送至所述目标用户对应的消息消费节点,包括:
22.采用所述发送参数,通过所述第一渠道将所述第一渠道对应的目标消息发送至所述目标用户对应的消息消费节点。
23.可选的,所述目标发送策略还包括:备用渠道标识;
24.若在预设时间段内通过所述第一渠道未成功发送所述待推送消息,则采用所述发送参数,通过所述备用渠道标识对应的第二渠道将所述待推送消息发送至所述目标用户对应的消息消费节点。
25.可选的,所述发送参数包括:发送时间的参数和/或重试次数的参数。
26.可选的,所述方法还包括:
27.根据预设时间周期,对历史消息的历史发送记录进行数据统计。
28.第二方面,本技术实施例还提供了一种消息推送装置,所述装置包括:接收模块、确认模块、发送模块;
29.所述接收模块,用于接收消息生产节点发送的待推送消息、所述待推送消息对应的策略标识,以及所述待推送消息对应的目标用户的标识;
30.所述确认模块,用于确定所述策略标识对应的消息发送策略为目标发送策略,所述目标发送策略中包括:主渠道标识以及发送参数;
31.所述发送模块,用于采用所述发送参数,通过所述主渠道标识对应的第一渠道将所述待推送消息发送至所述目标用户对应的消息消费节点。
32.第三方面,本技术实施例还提供了一种服务器,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当服务器运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行时执行如第一方面任一所述的消息推送方法的步骤。
33.第四方面,本技术实施例还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面任一所述的消息推送方法的步骤。
34.本技术的有益效果是:本技术实施例提供一种消息推送方法,通过接收消息生产节点发送的待推送消息、待推送消息对应的策略标识,以及待推送消息对应的目标用户的标识。将策略标识对应的消息发送策略确定为目标发送策略,采用发送参数,通过主渠道标识对应的第一渠道将待推送消息发送至目标用户对应的消息消费节点。由此,通过配置待推送消息对应的策略标识和待推送消息对应的目标用户的标识,即可根据实际需求,向不同的待推送消息指定不同的发送策略,进而实现对消息推送灵活处理,更好地运营和管理需要给用户下发的消息。此外,本方法具有高度可扩展性,面对不同的业务需求和复杂的业
务场景时,可以通过对渠道或者发送策略的配置、扩展,满足业务需求和业务场景需求,避免重复开发导致的开发成本的浪费。
附图说明
35.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
36.图1为现有消息推送渠道结构示意图;
37.图2为本技术一实施例提供的一种消息推送方法的流程图;
38.图3为本技术一实施例提供的一种消息推送系统架构示意图;
39.图4为本技术又一实施例提供的一种消息推送方法的流程图;
40.图5为本技术另一实施例提供的一种消息推送方法的流程图;
41.图6为本技术再一实施例提供的一种消息推送方法的流程图;
42.图7本技术一实施例提供的一种备选渠道中延时队列的实现方式示意图;
43.图8为本技术一实施例提供的一种消息推送方法中发送参数实现方法流程图;
44.图9为本技术一实施例提供的一种消息推送装置的示意图;
45.图10为本技术实施例提供的一种服务器的示意图。
具体实施方式
46.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
47.在本技术中,除非另有明确的规定和限定,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包含至少一个特征。在本发明中的描述中,“多个”的含义是至少两个,例如两个、三个,除非另有明确具体的限定。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
48.目前,各行业的数字化、智能化进程如火如荼,企业对数智化用户运营的需求日益旺盛;同时,在万物互联时代,用户可触达的渠道也变得更加丰富。消息发送已不单是用户收到一条消息,在消息推送之前,也会有更多依据业务场景的前置需求,同时,消息推送/下发的条件也越来越复杂和多样化。
49.在此背景下,图1为现有消息推送渠道结构示意图,如图1所示,现有消息推送渠道过于单一,且分布式系统拆分出不同的业务系统,在业务系统内对接各个渠道消息发送,容易重复开发,浪费开发成本。另外,面对不同的业务需求和复杂的业务场景,消息发送策略
不够完备。
50.鉴于此,为了更好的运营和管理需要给用户下发的消息,需对消息进行统一接入,统一管理,并根据实际的业务需求,制定不同的消息策略。
51.针对目前消息推送策略不够完善的问题,本技术实施例提供了多种可能的实现方式,以更好实现消息推送。如下结合附图通过多个示例进行解释说明。图2为本技术一实施例提供的一种消息推送方法的流程图,该方法可由运行有上述方法的电子设备实现,该电子设备例如可以为终端设备,也可以为服务器。如图2所示,该方法包括:
52.步骤201:接收消息生产节点发送的待推送消息、待推送消息对应的策略标识,以及待推送消息对应的目标用户的标识。
53.需要说明的是,在消息生产节点中,生成待推送消息、待推送消息对应的策略标识,以及待推送消息对应的目标用户的标识。其中,待推送消息即为向目标用户推送的消息数据,其可以为文本消息、图形图像消息、音视频消息、网页链接消息等,本技术对此不做限定。
54.待推送消息对应的策略标识即为该待推送消息对应的策略配置的标识,通过此策略标识可以获取针对待推送消息的推送策略。需要说明的是,策略配置中可以包括对待推送消息推送方法、推送渠道、推送时间等的具体配置,用户在使用中还可以根据实际使用需要对此策略配置进行扩展。上述仅为实例说明,本技术对策略配置的具体内容不做限定。
55.待推送消息对应的目标用户的标识是待推送消息发送目标对象的标识信息,根据此目标用户标识,可以确认目标用户的相关信息,例如目标用户的账号、账号信息等。在一种可能的实现方式中,一条待推送消息可能对应多个目标用户,此时,待推送消息对应的目标用户的标识可以是目标用户标识表,该表中包括多个目标用户的标识。在另一种可能的实现方式中,每个用户可能有多种消息获取渠道,从而可以根据待推送消息对应的目标用户的标识获取该目标用户在多个消息渠道的相关信息。
56.在一种具体的实现方式中,图3为本技术一实施例提供的一种消息推送系统架构示意图,消息推送系统包括业务系统、消息系统、管理后台以及对接第三方。其中,业务系统作为一种消息生产节点,向消息系统发送待推送的消息、待推送消息对应的策略标识,以及待推送消息对应的目标用户的标识。
57.对待推送消息对应的策略标识而言,用户可以通过在管理后台中对推送相关方法进行配置,从而获取该配置对应的配置标识,业务系统通过将此配置标识传递到消息系统中,为后续调用相应的推送策略提供基础。
58.步骤202:确定策略标识对应的消息发送策略为目标发送策略,目标发送策略中包括:主渠道标识以及发送参数。
59.在一种可能的实现方式中,获取策略标识后,该策略标识对应的消息发送策略即为目标发送策略,再目标发送策略中包括:主渠道标识和发送参数。其中,主渠道标识用以标识待推送给消息的推送渠道(或者首选/优选渠道,除主渠道外还可能存在备选渠道,当主渠道再推送过程中出现未送达或者用户未接受等异常情况时,可以通过备选渠道发送)。发送参数为待推送消息推送相关方法的设定参数,例如推送时间参数、频率参数等。
60.需要说明的是,目标发送策略中可以包括一个或多个主渠道标识,进而实现待推送消息发送到一个或多个渠道。发送参数也可以根据实际需要设定一个或多个发送参数。
本技术对此不做限定。此外,用户还可以根据需求对发送参数进行扩展,从而实现更丰富的推送设置,本技术对此不做限定。
61.还需要说明的是,本技术的渠道例如可以为短信、邮件、微信公众号、推流等,用户还可以根据实际需要新增其他渠道,便捷灵活。
62.步骤203:采用发送参数,通过主渠道标识对应的第一渠道将待推送消息发送至目标用户对应的消息消费节点。
63.采用上述发送参数,根据主渠道标识对应的第一渠道,将待推送消息推送到目标用户的消息消费节点中。
64.综上,本技术实施例提供一种消息推送方法,通过接收消息生产节点发送的待推送消息、待推送消息对应的策略标识,以及待推送消息对应的目标用户的标识。将策略标识对应的消息发送策略确定为目标发送策略,采用发送参数,通过主渠道标识对应的第一渠道将待推送消息发送至目标用户对应的消息消费节点。由此,通过配置待推送消息对应的策略标识和待推送消息对应的目标用户的标识,即可根据实际需求,向不同的待推送消息指定不同的发送策略,进而实现对消息推送灵活处理,更好地运营和管理需要给用户下发的消息。此外,本方法具有高度可扩展性,面对不同的业务需求和复杂的业务场景时,可以通过对渠道或者发送策略的配置、扩展,满足业务需求和业务场景需求,避免重复开发导致的开发成本的浪费。
65.可选的,在上述图2的基础上,本技术还提供一种消息推送方法的可能实现方式,图4为本技术又一实施例提供的一种消息推送方法的流程图;如图4所示,步骤203:采用发送参数,通过主渠道标识对应的第一渠道将待推送消息发送至目标用户对应的消息消费节点,包括:
66.步骤401:根据目标用户的标识,查询第一渠道中目标用户的渠道参数。
67.根据目标用户的标识,可以确认目标用户的相关信息,例如渠道参数等,所谓渠道参数是指目标用户的至少一种接收渠道的参数,例如可以为渠道账号、渠道id等,此外,在扩展渠道的同时,可以向目标用户中增加新渠道的渠道参数,从而实现新渠道的推送,上述仅为实例说明,本技术对渠道参数的具体形式、内容等不做限定。
68.在一种具体的实现方式中,使用图3所示的消息推送系统架构,在管理后台的渠道与用户体系中,将各渠道的用户标识与消息推送系统的用户标识绑定,由此实现在消息推送中向目标用户的多个渠道进行消息推送。在一种可能的实现方式中,部分渠道用户标识来源可以为用户在创建账户是填写的信息,如手机号、邮箱等。还有一部分渠道用户标识的绑定需要通过其他动作触发,例如公众号的用户标识与其他系统关系的维护可以通过用户微信扫描二维码时触发。再例如,推流(push)与业务本身用户id关系的维护通过登录系统动作触发。再例如,可以通过管理后台批量导入绑定各渠道的用户标识与消息推送系统的用户标识。
69.步骤402:采用发送参数,通过第一渠道中目标用户的渠道参数,将待推送消息发送至目标用户对应的消息消费节点。
70.采用发送参数,以及第一渠道中目标用户的渠道参数,实现待推送消息向通过第一渠道向目标用户消息消费节点的发送。
71.通过目标用户的标识,查询第一渠道中目标用户的渠道参数,实现待推送给消息
通过指定的第一渠道发送,进一步提高了本技术推送方式的灵活性。
72.可选的,在上述图1的基础上,本技术还提供一种消息推送方法的可能实现方式,图5为本技术另一实施例提供的一种消息推送方法的流程图;如图5所示,步骤203:采用发送参数,通过主渠道标识对应的第一渠道将待推送消息发送至目标用户对应的消息消费节点之前,该方法还包括:
73.步骤501:接收消息生产节点发送的待推送消息对应的消息发送方式的参数。
74.需要说明的是,消息生产节点在发送待推送消息的同时,还有该待推送消息对应的消息发送方式的参数,消息发送方式的参数指示了此待推送消息的具体发送方式。
75.在一种可能的实现方式中,消息发送方式参数可以指示普通消息发送、模板消息发送等,例如可以使用0、1进行标识,若消息发送方式参数为0,则以普通消息发送,若消息发送方式参数为1,则以模板消息发送;也可以以是否存在消息发送方式参数为标识,若存在消息发送方式参数,则以模板消息发送,若不存在消息发送方式参数,则以普通消息发送。上述仅为实例说明,本技术对消息发送方式参数的具体设置方式不做限定,只要能够表征消息发送方式即可。此外,待推送消息的具体发送方式也不限于普通消息发送、模板消息发送,在上述方法的基础上可以进行扩展。
76.在上述实现方式中,模板消息发送是指在消息生产节点中设置待推送消息的模板,即待推送消息具有预先指定的消息模板的标识的消息发送方式,根据模板消息可以对待推送消息的格式进行处理,使得调整后的消息满足目标发送渠道的要求;
77.步骤502:若消息发送方式指示待推送消息具有预先指定的消息模板的标识,则根据消息模板对待推送消息的内容格式进行调整。
78.若消息发送方式参数指示待推送给消息具有预先指定的消息模板的标识,则根据指示的消息模板对待推送消息的内容格式进行处理调整。在一种可能的实现方式中,消息模板的标识可以指示特定的消息模板。
79.使用图3所示的消息推送系统架构,若以模板消息发送,在管理后台的模板配置中,提前预置至少一种消息模板,每种消息模板都存在唯一模板标识,业务系统向消息系统发送待推送消息时,同时推送该唯一模板标识,消息系统可以根据此模板标识调用相应的模板对待推送消息进行处理。
80.在一种具体的实现方式中,消息发送方式选择模板消息发送,需要在管理后台设置的消息模板,在调用消息系统发送消息时,由本技术获取管理后台配置的消息模板,拼接渠道所需发送参数格式,业务系统只需指定消息模板标识以及相关变量(例如:变量key、变量value等)即可,相对普通消息发送方式而言更为便捷,业务系统不用考虑渠道所需参数格式的问题,内容也更为规范。具体格式如下:
81.{"channelcode":"sms",
82."appkey":"dasd15sidosdce2c31",
83."userid":["user1","user2"],
[0084]
"templateid":10001,
[0085]
"templateparam":{"money":"xxx","time":"xxx"},
[0086]
"strategyid":1001}
[0087]
其中,channelcode:渠道编号sms-短信;email-邮件;push-推送;wxmp-微信公众
号,类型string,非必需输入.与strategyid不能同时为空。
[0088]
appkey:应用key,不为空,该应用下所有用户接受消息通知。优先级比userid高,类型string,非必须输入。
[0089]
userid:用户id列表,类型array,非必须输入,userid与appkey不能同时为空。
[0090]
templateid:消息模板id。类型string,必须输入。
[0091]
templateparam:消息模板内容。类型object,必须与模板匹配。
[0092]
strategyid:发送策略id,在管理后台配置,类型string,非必需输入。
[0093]
上述仅为实例说明,在实际实现中还可以有其他的模板消息发送的可能实现方式本技术对此不做限定。
[0094]
在另一种具体的实现方式中,使用图3所示的消息推送系统架构,若以模板消息发送,先要设定模板信息。例如将模板消息设置放在管理后台,创建模板消息流程:录入模板名称

选择一种渠道

设置渠道相关信息。
[0095]
渠道相关信息主要包括消息模板内容以及渠道自身特有的参数,如email需要配置为邮件标题,邮件内容,微信公众号需要配置已审核通过的消息模板等。
[0096]
此外,部分渠道的模板内容需由第三方审核,审核通过的消息模板才可以进行消息推送。因此,在选择模板内容时,只展示审核通过的模板。
[0097]
通过在管理后台配置消息模板,省去了业务调用方拼接为不同渠道的消息内容拼接不同json串的麻烦,发送模板消息更为简单,快捷,且规范了内容。
[0098]
采用发送参数,通过主渠道标识对应的第一渠道将待推送消息发送至目标用户对应的消息消费节点,包括:
[0099]
步骤503:采用发送参数,通过第一渠道将内容格式调整后的消息发送至目标用户对应的消息消费节点。
[0100]
根据消息模板对待推送消息的内容格式进行调整后,采用发送参数,通过第一渠道将内容格式调整后的消息发送至目标用户对应的消息消费节点。
[0101]
利用消息模板对待推送消息的内容格式进行调整,进而将此待推送给消息进行发送,处理速度快,且处理方式简单,通过预先配置消息模板,即可实现待推送消息的模板化处理,进一步提升了本技术消息推送方法的灵活性。
[0102]
可选的,在上述图5的基础上,本技术还提供一种消息推送方法的可能实现方式,图6为本技术再一实施例提供的一种消息推送方法的流程图;如图6所示,采用发送参数,通过主渠道标识对应的第一渠道将待推送消息发送至目标用户对应的消息消费节点之前,该方法还包括:
[0103]
步骤601:若消息发送方式指示待推送消息不具有预先制定的消息模板的标识,则根据预设的多个渠道的消息内容格式,分别对待推送消息的内容格式进行调整,得到多个渠道对应的目标消息。
[0104]
需要说明的是,普通消息发送是指在消息生产节点中未设置上述模板的消息发送方式,即不具有预先制定的消息模板的标识的消息发送方式。若消息发送方式指示待推送消息为普通消息发送时,根据预设的多个渠道的消息内容格式,分别对待推送消息的内容格式进行调整,得到多个渠道对应的目标消息。
[0105]
使用图3所示的消息推送系统架构,若以普通消息发送,则业务系统需要熟悉消息
渠道本身要求的内容格式,对待推送消息根据预设的多个渠道的内容格式进行处理,使得处理后的待推送消息能够匹配渠道要求,得到多个渠道对应的目标消息。
[0106]
在一种具体的实现方式中,若以普通消息发送,为实现业务系统(即消息生产节点)统一调用,本技术对待推送消息的发送参数进行了以下规范,业务系统只需对接一次,即可满足多渠道消息的发送,具体格式如下:
[0107]
{"channelcode":"sms",
[0108]
"appkey":"dasd15sidosdce2c31",
[0109]
"userid":["user1","user2"],
[0110]
"content":[
[0111]
{"subject":"email title",
[0112]
"text":"email content"}],
[0113]
"strategyid":1001}
[0114]
其中,各参数的意义如下:
[0115]
channelcode:渠道编号;sms-短信;email-邮件;push-推送;wxmp-微信公众号,类型为string,非必须输入,与strategyid不能同时为空。
[0116]
appkey:应用key,不为空,该应用下所有用户接受消息通知。优先级比userid高,类型为string,非必须输入。
[0117]
userid:用户id列表,类型array,非必须输入,userid与appkey不能同时为空。
[0118]
content:消息内容,不同渠道消息内容所需格式不同,须严格按照消息内容格式发送。具体内容详解如下,类型为object,必须输入。
[0119]
strategyid:发送策略id,在管理后台配置,类型string,非必须输入。
[0120]
为方便业务方统一调用,以上提到的content消息内容字段必须遵循渠道自身内容,详解如下:
[0121]
渠道为sms-短信的发送格式为:
[0122]
"content":[{"msg":"sms content",}]
[0123]
其中,msg:短信内容,类型string,必须输入。
[0124]
渠道为推流(push)推送的发送格式为:
[0125]
"content":[{"body":{"msg":"测试透传”},
[0126]
"source":"integral expire"
[0127]
其中,body:透传的内容,可传入各种业务所需要的json串,类型object,必须输入。
[0128]
source:来源,类型string,必须输入。
[0129]
渠道为wxmp-公众号的发送格式为:
[0130]
"content:[{"template_id":
[0131]
"ngqipbwh8bufcssecmogfxcv14j0tq1epb027izeyty",
[0132]
"ur1":"http://weixin.qq.com/download",
[0133]
"miniprogram":{"appid":"xiaochengxuappid12345",
[0134]
"pagepath":"index?foo=bar"},
[0135]
"data":{"first":
[0136]
{"value":"恭喜你购买成功!","color":"#173177"},
[0137]
"keyword1":{"value":"巧克力","color":"#173177"},
[0138]
"remark":{"value":"欢迎再次购买!",
[0139]
"color":"#173177"}}}}
[0140]
其中,template_id:模板id,类型string,必须输入。
[0141]
url:模板跳转链接,类型string,非必须输入。
[0142]
miniprogram:跳小程序所需数据,类型object,非必须输入。
[0143]
appid:所需跳转到小程序的appid,类型string,非必须输入.
[0144]
pagepath:所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar),要求该小程序已发布,暂不支持小游戏。
[0145]
data:模板数据,类型object,必须输入。
[0146]
color:模板字体颜色,类型string,非必须输入。
[0147]
渠道为email-邮件的发送格式为:
[0148]
"content":[{"subject":"email title","text":"email content"}
[0149]
其中,subject:邮件标题,类型string,必须输入。
[0150]
text:邮件内容,支持html格式,类型string,必须输入。
[0151]
上述仅为实例说明,提供了以中国普通消息发送的可能实现方式,还可能存在其他的实现方式,本技术对此不做限定。
[0152]
采用发送参数,通过主渠道标识对应的第一渠道将待推送消息发送至目标用户对应的消息消费节点,包括:
[0153]
步骤602:采用发送参数,通过第一渠道将第一渠道对应的目标消息发送至目标用户对应的消息消费节点。
[0154]
采用发送参数,将处理后的目标消息通过第一渠道发送至目标用户对应的消息消费节点。
[0155]
对于不具有预先制定的消息模板的标识的待推送消息,此类消息可能时由于其他业务需求或者当前配置的模板不能满足其使用需要,则可以使用普通消息发送的方式进行发送,进一步提升了本技术消息推送方法的灵活性,扩大了本技术消息推送方法的适用范围。
[0156]
可选的,在上述图1的基础上,本技术还提供一种消息推送方法的可能实现方式,目标发送策略还包括:备用渠道标识;
[0157]
若在预设时间段内通过第一渠道未成功发送待推送消息,则采用发送参数,通过备用渠道标识对应的第二渠道将待推送消息发送至目标用户对应的消息消费节点。
[0158]
需要说明的是,目标发送策略还包括:备用渠道标识,该备用渠道标识指示的备用渠道(即第二渠道),当待推送消息在预设时间段内未成功发送待推送消息,则采用发送参数,通过第二渠道将待推送消息发送至目标用户对应的消息消费节点。
[0159]
在一种具体的实现方式中,备选渠道的消息发送实现可以借助于延时队列实现。图7本技术一实施例提供的一种备选渠道中延时队列的实现方式示意图,如图7所示,延时任务通过消息的生存时间(time to live,ttl)和死信队列(dead letter exchange)来实现。其中,创建两个队列,一个用于发送消息的队列(即图中普通队列),一个用户消息过期
后的转发目标队列(即途中死信队列)。生产者(即消息生产节点)输出消息到普通队列,并且为此待推送消息设置有效时间的,比如设置有效时间为a分钟,待推送消息会在普通队列等待a分钟,如果没有消费者(即消息消费节点)收取,将此待推送消息转发到死信队列中,死信队列中的待推送消息在消费者收到消息后,从而完成延迟任务。
[0160]
通过设置备用备用渠道标识以此对应第二渠道,对预设时间段内通过第一渠道未成功发送待推送消息继续使用第二渠道发送,进一步保障了消息推送的覆盖面。
[0161]
可选的,在上述图1的基础上,本技术还提供一种消息推送方法的可能实现方式,发送参数包括:发送时间的参数和/或重试次数的参数。
[0162]
需要说明的是,发送参数包括:发送时间的参数和/或重试次数的参数,其中,发送时间参数表示待推送消息的发送时间,例如其可以为即时发送、定时发送、延时发送、在一定时效范围内发送等。重试次数表示当待推送消息未成功发送时,需要进行重试的次数。
[0163]
在一种可能的实现方式中,发送时间的参数可以选择定时/延时/即时/时效,即时为立即发送;如果选择定时,需设置定时规则,例如每天10点向消息消费节点发送消息;如果选择延时,则设置延时时长;如果选择时效,则需设置时效范围和/时间间隔,在此时效范围内,如果消息发送失败则每隔时间间隔再进行发送,由此,时间间隔小于时效范围,例如时间间隔可以设置为5分钟,若消息发送失败,则每5分钟尝试发送一次。
[0164]
在另一种可能的实现方式中,待推送消息发送给消息消费节点后,检查是否设置了重试次数的参数,若存在重试次数的参数,则判断当前的重试次数是否超过设定的重试次数,若没有超过,则将待推送消息加入重试队列,重新进行发送。需要说明的而是,再设置重试次数参数的基础上,还可以对重试队列设置一个或多个延时时间,以设定相邻两次重试的间隔时间,例如设置重试次数的参数为3次,延时时间为m秒,n秒,s秒,则当待推送消息发送给消息消费节点失败后,间隔m秒进行第一次重试,再次失败后,间隔n秒进行第二次重试,再次失败后,间隔s秒进行第三次重试。此外,若当前的重试次数已经超过设定的重试次数,则可以将其放入死信渠道、根据相关配置使用备用渠道、或者进行人工干预等。
[0165]
在一种具体的实现方式中,图8为本技术一实施例提供的一种消息推送方法中发送参数实现方法流程图,如图8所示,例如设置延时时间设定为5s、10s、1min,第一次设置延时时间为5s,5s过后重新投递,进入重试队列,重新投入待推送消息队列种,若重试超过3次,判断是否配置了备用渠道,如果配置了,进入死信队列,更换消息发送渠道,若再次失败,可人工干预处理。
[0166]
使用图3所示的消息推送系统架构,消息发送具体方式可以根据管理后台配置的发送策略决定,若没有配置策略,可以使用预设的默认发送策略,例如默认即时发送,无补发及重试功能。管理后台创建发送策略流程可以为:选择一种或多种渠道

设置发送时间的参数和/或重试次数的参数

设置备用渠道。
[0167]
可选的,在上述实施例的基础上,本技术还提供一种消息推送方法的可能实现方式,该方法还包括:
[0168]
根据预设时间周期,对历史消息的历史发送记录进行数据统计。
[0169]
在一种可能的实现方式中,可以根据预设时间周期,对历史消息的历史发送记录进行数据统计,其中,数据统计的内容可以包括:发送内容、消息接收用户、发送状态、发送时间等。根据上述数据统计内容还可以进一步统计每种渠道每天/每周/每月数据,例如消
息成功送达率、送达失败率等。上述仅为实例说明,在实际实现中还可以有其他的数据统计内容,本技术对此不做限定。需要说明的是,预设时间周期为数据统计周期,例如,预设时间周期可以为每天/每周/每月等,本技术对此不做限定。此外,为简化用户的实现消息推送方法的配置流程,预设时间周期还可以是默认固定值,例如固定每天/每周/每月对历史发送数据进行数据统计。
[0170]
通过对历史发送记录进行数据统计,用户可以根据统计的数据即时调整消息发送策略,优化消息推送方式。
[0171]
可选的,使用图3所示的消息推送系统架构,消息具体的发送方式可以由在管理系统配置的发送策略配置决定,或可默认,例如默认即立即发送,无补发和重试策略。发送策略配置包括渠道选择,可选择一种或多种渠道;消息时间选择,包括定时/即时/延时/时效等;重试次数设置,重试次数为失败后重试的次数;备用渠道,如果发送失败选择的备选渠道,支持预设时间间隔后将消息发送给备用渠道。
[0172]
可选的,无需修改已对接接口,只需匹配调用参数,就可以通过如下方法新增渠道:
[0173]
指定channelcode为新增渠道码值。
[0174]
消息发送方式为普通消息发送,则content参数设定为新增渠道所需值;
[0175]
消息发送方式为模板消息发送,则在管理后台配置新渠道的消息模板。在发送消息时,选择配置好的模板id,设置模板变量即可。
[0176]
此外,在实现多渠道消息推送时,可以采用策略 工厂模式,每增加一种渠道,加入一种策略实现即可。
[0177]
由此,本技术实现了微信、短信、邮件、系统通知等多渠道触达,自定义消息策略的设置满足了不同业务需求。且系统可扩展性强,如需新增加一种渠道,业务系统无需变更接口,只需根据新渠道设置参数即可。消息统一记录,便于集中统计与监控。
[0178]
可选的,在步骤201之前,还可以进行参数校验,例如身份验证、渠道校验、模板校验等。身校验主要负责调用方身份的验证以及保证请求参数信息不被篡改;渠道校验主要验证业务服务发送的渠道是否正确。模板校验用于验证模板是否存在且匹配。
[0179]
下述对用以执行本技术所提供的消息推送装置、服务器及存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
[0180]
本技术实施例提供一种消息推送装置的可能实现示例,能够执行上述实施例提供的消息推送方法。图9为本技术一实施例提供的一种消息推送装置的示意图。如图9所示,上述消息推送装置100,包括:接收模块91、确认模块93、发送模块95;
[0181]
接收模块91,用于接收消息生产节点发送的待推送消息、待推送消息对应的策略标识,以及待推送消息对应的目标用户的标识;
[0182]
确认模块93,用于确定策略标识对应的消息发送策略为目标发送策略,目标发送策略中包括:主渠道标识以及发送参数;
[0183]
发送模块95,用于采用发送参数,通过主渠道标识对应的第一渠道将待推送消息发送至目标用户对应的消息消费节点。
[0184]
可选的,发送模块95,用于根据目标用户的标识,查询第一渠道中目标用户的渠道参数;采用发送参数,通过第一渠道中目标用户的渠道参数,将待推送消息发送至目标用户
对应的消息消费节点。
[0185]
可选的,接收模块91,用于接收消息生产节点发送的待推送消息对应的消息发送方式的参数;
[0186]
确认模块93,用于若消息发送方式指示待推送消息具有预先指定的消息模板的标识,则根据消息模板对待推送消息的内容格式进行调整;
[0187]
发送模块95,用于采用发送参数,通过第一渠道将内容格式调整后的消息发送至目标用户对应的消息消费节点。
[0188]
可选的,确认模块93,用于若消息发送方式指示待推送消息不具有预先制定的消息模板的标识,则根据预设的多个渠道的消息内容格式,分别对待推送消息的内容格式进行调整,得到多个渠道对应的目标消息;
[0189]
发送模块95,用于采用发送参数,通过第一渠道将第一渠道对应的目标消息发送至目标用户对应的消息消费节点。
[0190]
可选的,目标发送策略还包括:备用渠道标识;确认模块93,用于若在预设时间段内通过第一渠道未成功发送待推送消息,则采用发送参数,通过备用渠道标识对应的第二渠道将待推送消息发送至目标用户对应的消息消费节点。
[0191]
可选的,发送参数包括:发送时间的参数和/或重试次数的参数。
[0192]
可选的,消息推送装置100还包括,统计模块,统计模块,用于根据预设时间周期,对历史消息的历史发送记录进行数据统计。
[0193]
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
[0194]
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,简称asic),或,一个或多个微处理器(digital singnal processor,简称dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,简称fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,简称cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。
[0195]
本技术实施例提供一种服务器的可能实现示例,能够执行上述实施例提供的消息推送方法。图10为本技术实施例提供的一种服务器的示意图,该设备可以集成于终端设备或者终端设备的芯片,该终端可以是具备数据处理功能的计算设备。
[0196]
该服务器包括:处理器1001、存储介质1002和总线,存储介质存储有处理器可执行的程序指令,当控制设备运行时,处理器与存储介质之间通过总线通信,处理器执行程序指令,以执行时执行上述消息推送方法的步骤。具体实现方式和技术效果类似,这里不再赘述。
[0197]
本技术实施例提供一种计算机可读存储介质的可能实现示例,能够执行上述实施例提供的消息推送方法,存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述消息推送方法的步骤。
[0198]
存储在一个存储介质中的计算机程序,可以包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明
各个实施例方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-only memory,简称:rom)、随机存取存储器(英文:random access memory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0199]
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0200]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0201]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0202]
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-only memory,简称:rom)、随机存取存储器(英文:random access memory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0203]
以上仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献