一种消息推送方法、装置和系统的制作方法_4

文档序号:9870044阅读:来源:国知局
-2点,如果当前系统时间为1:30时,此时,将会向该微信号或者qq号对应的终端发送公众消息,比如天气信息。
[0157]其中,向目标即时通讯标识对应的终端发送公众消息的方式可以有多种,比如,可以通过推送服务器向终端发送公众消息,也可以自己向终端发送公众消息;也即步骤“向该目标即时通讯标识对应的终端发送该定制化公众消息”可以包括:向推送服务器推送该定制化公众消息,以通过该推送服务器向该目标即时通讯标识对应的终端推送该定制化公众消息。比如可以根据预设推送速度向推送服务器推送定制化公众消息。
[0158]在实际应用中,可以调用信息推送接口向推送服务器推送公众消息,以通过该推送服务器向该目标即时通讯标识对应的终端推送该公众消息;比如,调用信息推送接口以预设速度向推送服务器推送公众消息。
[0159]为防止推送服务器过载导致推送服务器以及推送接口奔溃,进而导致消息推送失败,本实施例可以对推送服务器进行过载保护,保证推送服务器的稳定性,具体地,可以由推送服务器反馈推送情况,然后,根据推送情况调整预设推送速度;即在步骤“向推送服务器发送该定制化公众消息”之后,该消息推送方法还可以包括:
[0160]接收该推送服务器反馈的推送状况信息;
[0161 ]根据该推送状况信息对该预设推送速度进行调整。
[0162]其中,推送状况信息可以包括推送服务器当前推送信息的数量、推送服务器所剩的资源等等。
[0163]可选地,为了防止公众消息生成过程发生异常,导致目标即时通讯标识对应的公众消息无法推送,该消息推送方法还可以包括:当生成目标即时通讯标识对应的定制化公众消息异常或者失败时,在预设时间段之后重新生成该目标即时通讯标识对应的定制化公众消息,比如在用户的定制化消息组装过程中产生异常的情况下,将目标即时通讯标识放入重试队列,I分钟后重试,重试3次。
[0164]下面以即时通讯标识为qq号为例来详细介绍服务器集群中服务器的消息推送过程,参考图3,可以包括:
[0165]301、业务服务器接收分配服务器发送的服务器集群所需处理的第一 qq号码集合,该第一 qq号码集合包括多个qq号码,该qq号码为与某个公众号相关联。
[0166]比如,该公众号可以为天气类的公众号,或者运动类的公众号等等。
[0167]302、业务服务器获取qq号码对应的登录状态信息,并根据该登录信息从第一 qq号码集合中选取消息可达的qq号码,以得到第二 qq号码集合。
[0168]303、业务服务器从第二 qq号码集合中选取自己需要处理的目标qq号码,以得到目标qq号码集合。
[0169]304、业务服务器生成目标qq号集合中目标qq号对应的定制化消息。
[0170]比如,业务服务器可以获取目标qq号对应的用户订阅信息,然后,根据该用户订阅信息生成目标qq号对应的定制化消息。其中,定制化消息的类型与公众号的类型相关。
[0171]305、业务服务器判断是否已经向该目标qq号对应的终端发送定制化消息,若否,则执行步骤306,若是,则转到步骤304生成下一个目标qq号对应的定制化消息。
[0172]306、业务服务器根据预定推送速度向推送服务器发送该定制化消息,以通过该推送服务器向该目标qq号对应的终端发送该定制化消息。
[0173]比如,业务服务器通过调用推送接口以预定推送速度向推送服务器发送该定制化消息。
[0174]307、业务服务器接收推送服务器反馈的推送状况信息,并根据该推送状况信息调整该预定推送速度。
[0175]由上可知,本发明实施例采用获取需要处理的目标标识集合,然后,获取该目标标识集合中目标即时通讯标识对应的定制化消息,判断是否已经向该目标即时通讯标识对应的终端发送定制化消息,若是,则根据预设推送速度向推送服务器推送该定制化消息,以通过该推送服务器向该目标即时通讯标识对应的终端推送该定制化消息,接收该推送服务器反馈的推送状况信息,根据该推送状况信息对该预设推送速度进行调整;该方案可以实现单个用户的定制化推送内容,以及海量用户的推送,还可以通过动态调整的推送速度以及信息推送速度的均匀,实现服务的过载保护策略,保障推送服务器自身以及所依赖的各个接口稳定,防止雪崩,此外还可以保障每个用户收到一条消息,节省资源。
[0176]实施例四、
[0177]为了更好地实施以上方法,本发明实施例还提供一种消息推送装置,如图4a所示,该消息推送装置还可以包括第一处理单元400、第一获取单元401、确定单元402、第二获取单元403和第二处理单元404,如下:
[0178](I)、第一处理单元400;
[0179]该第一处理单元400,用于获取需要处理的目标即时通讯标识,并向该目标即时通讯标识对应的终端发送公众消息,其中,该目标即时通讯标识与公众即时通讯标识关联。
[0180]比如,第一处理单元400,具体包括:标识获取子单元和处理子单元;
[0181 ]该标识获取子单元,用于获取需要处理的目标即时通讯标识;
[0182]该处理子单元,用于向该目标即时通讯标识对应的终端发送公众消息。
[0183]其中,获取需要处理的目标即时通讯标识的方式可以有多种,比如,可以由数据源主动推送,也可以发送请求从数据源获取,即该标识获取子单元可以用于向数据源发送标识获取请求,接收该数据源根据该标识获取请求返回的目标即时通讯标识,向该目标即时通讯标识对应的终端发送公众消息。
[0184]又比如,标识子单元可以具体用于:
[0185]获取该服务器集群需要处理的第一即时通讯标识集合,其中,第一即时通讯标识集合包括多个与该公众即时通讯标识关联的即时通讯标识;
[0186]从第一即时通讯标识集合中选取需要处理的目标即时通讯标识;
[0187]向该目标即时通讯标识对应的终端发送公众消息。
[0188]可选地,为了节省资源,该目标即时通讯标识可以为消息可达的即时通讯标识,此时,标识获取子单元可以具体用于:
[0189]获取该服务器集群需要处理的第一即时通讯标识集合,其中,第一即时通讯标识集合包括多个与该公众即时通讯标识关联的即时通讯标识;
[0190]获取该第一即时通讯标识集合中即时通讯标识对应的登录状态信息;
[0191]根据该登录状态信息从该第一即时通讯标识集合中选取消息可达的即时通讯标识,以得到第二即时通讯标识集合;
[0192]从该第二即时通讯标识集合中选取需要处理的目标即时通讯标识。
[0193]可选地,从第二即时通讯标识集合中选取需要处理的目标即时通讯标识的方式可以有多种,比如,可以将标识集合划分成多个标识子集合,然后,从多个标识子集合中选取目标标识子集合,该目标标识子集合包括多个需要处理的目标即时通讯标识,例如,将第二即时通讯标识集合划分成多个标识子集合,从多个标识子集合中选取目标标识子集合,并将目标标识子集合中即时通讯标识作为需要处理的目标即时通讯标识,其中,该目标标识子集合可以包括多个消息可达的即时通讯标识。
[0194]向目标即时通标识对应的终端发送公众消息的方式可以有多种,比如,处理子单元,可以具体用于:
[0195]生成目标即时通讯标识对应的公众消息;
[0196]向目标即时通讯标识对应的终端发送该公众消息。
[0197]可选地,为了能够为每个用户推送不同的定制化消息,提升用户体验,,该步骤“生成目标即时通讯标识对应的公众消息”可以包括:
[0198]获取该目标即时通讯标识对应的用户定制信息;
[0199]根据该用户定制信息生成该目标即时通讯标识对应的定制化公众消息;
[0200]此时,步骤“向目标即时通讯标识对应的终端发送该公众消息”可以包括:向该目标即时通讯标识对应的终端发送该定制化公众消息。
[0201]其中,公众消息可以包括:文字信息、图片信息、视频信息中的至少一种;比如,公众消息可以包括天气信息以及用户所属星座的运势信息等等。不同的公众账号或者不同公众即时通讯标识可以对应不同类型的公众消息,比如,天气类的公众账号对应的公众消息可以为天气信息,定位类的公众账号对应的公众消息可以为地理位置信息,运动类的公众账号对应的公众消息可以为用户运动信息等,同样定制化公众消息可以是一样,其与普通公众消息的区别在于,普通公众消息对于所有用户均是相同内容,而定制化公众消息对于不同用户其内容可能是不相同的。
[0202](2)第一获取单元401;
[0203]第一获取单元401,用于在发送公众消息的过程中,从数据存储单元获取服务器集群中其他服务器的状态信息,该数据存储单元存储有该服务器集群中各服务器的状态信息。
[0204]其中,从数据存储单元获取状态信息的方式有多种,比如,可以由数据存储单元主动推送,也可以由自己请求,比如,第一获取单元401可以具体用于:
[0205]向数据存储单元发送信息获取请求;
[0206]接收该数据存储单元根据该信息获取请求返回的其他服务器的状态信息。
[0207]其中,信息获取请求可以携带其他服务器的服务器标识,这样,数据存储单元在接收到信息获取请求之后可以根据该请求将该服务器标识对应的状态信息发送给请求服务器,又比如,该信息获取请求还可以携带请求服务器自己的服务器标识,这样数据存储单元可以根据该请求将服务器集群中除了该服务器标识对应的服务器以外的其他服务器的状态信息发送给请求服务器。
[0208]可选地,为了能够实时获取其他服务器的状态,该第一获取单元可以用于:每隔预设时间段,从数据存储单元获取服务器集群中其他服务器的状态信息。
[0209]本实施例中,服务器集群可以由多个服务器组成,比如可以由十个服务器组成。
[0210]其中,状态信息可以为指示服务器当前工作状态的信息,比如,其可以包括服务器的心跳信息等等。该其他服务器可以为服务器集群中除了执行本实施例方法服务器以外的服务器。
[0211]本实施例中数据存储单元可以有多种,比如可以为一个数据存储设备,又比如也可以为由多个数据存储设备组成的数据源集群,此外,还可以为数据库集群等等。该数据存储单元可以存储服务器集群中每个服务器的状态信息,以便每个服务器可以从数据存储单元中获取其他服务器的状态信息,例如,该数据存储单元可以设置一张表或者一个集合存储服务器集群中服务器的状态信息。
[0212]例如,服务器的状态信息可以包括服务器的心跳信息及其更新时间,此时,数据存储单元存储有服务器集群中每个服务器的心跳信息及其更新时间,集群中服务器可以向数据存储单元发送心跳更新请求,该心跳更新请求携带心跳信息和服务器的标识,数据存储单元在接收到该心跳更新请求之后,根据该请求更新该服务器的心跳信息以及心跳信息对应的更新时间。
[0213]其中,更新心跳信息对应的更新时间的方式可以由多种,比如该心跳更新请求还可以携带心跳信息对应的当前时间,数据存储单元可以根据该当前时间更新心跳信息对应的更新时间,又比如,数据存储单元可以根据当前系统时间更新心跳信息对应的更新时间,又比如,数据存储单元可以根据心跳信息更新时的时间更新该心跳信息对应的更新时间。
[0214](3)确定单元402;
[0215]确定单元402,用于根据获取的该状态信息确定该其他服务器是否存在异常。
[0216]其中,根据状态信息确定其他服务器是否存在异常的方式有多种,比如,可以根据状态信息
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1