[发明专利]消息推送方法及装置有效
申请号: | 201710321261.7 | 申请日: | 2017-05-09 |
公开(公告)号: | CN107196848B | 公开(公告)日: | 2018-09-04 |
发明(设计)人: | 张俊生 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58;H04L29/08 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;贾允 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 推送 方法 装置 | ||
本发明涉及通信技术领域,公开了一种消息推送方法及装置。本发明事先将针对客户端的待发送消息存储于共享内存中,推送消息时,多个进程同时从共享内存读取消息并将读取的消息发送至对应的客户端;共享内存的读取速度比数据库读取速度快,加之多个进程同时读取和发送消息,因而可以提升消息推送的效率。本发明为了提高从共享内存读取消息的速度,在往共享内存中存储消息时,已经将消息进行了分类,每个进程的每个客户端可从确定的共享内存块查询待发送的消息,这样可以缩小查找范围,避免每个客户端从所有的消息里查找所需要的消息。
技术领域
本发明涉及通信技术领域,特别涉及一种消息推送方法及装置。
背景技术
消息推送技术随着移动互联网的迅速发展应运而生。消息推送技术是指,针对用户对信息的特定需求,有目的性的将信息主动推送到用户。通常采用服务器-客户机制,由服务器主动将信息推送给客户端。因此,推送技术实际上就是把信息自动送到用户面前的技术,即实现“信息找用户”。
现有技术中,要实现某一时刻给所有在线用户推送彼此不同的实时消息,可以用单进程对所有用户进行遍历,通过实时计算得到针对每个用户需要发送的消息并发送,也可以事先计算好要发送给用户的消息并存储在数据库(Database)中,发送时针对每个用户从数据库中读取要发送的消息进行发送。
现有的方案在性能上可以进一步提高,实时计算需要发送的消息内容,虽然可以免去存储所有用户待发送的消息内容的存储消耗,但需要耗费一定的时间,影响用户接收到消息的时效性。事先计算每个用户待发送的消息内容并存储于数据库中可以避免实时计算消息内容的时间消耗,但同时增加了从数据库读取消息内容的时间,对于用户接收消息时效性的影响取决于实时计算消息内容的时长和从数据库读取消息内容的时长。通过单进程遍历所有用户时,当用户数量很大时,遍历耗时将逐渐增大,后推送的消息达到用户的时效性越差。而终端用户对推送消息的准确性和及时性有着强烈的要求,但是现有技术中并不能实现对消息正常、及时地推送。
发明内容
本发明提供了一种消息推送方法及装置,基于共享内存及多进程技术,通过多进程同时从共享内存读取消息并推送给客户端,解决了消息推送不及时的问题,实现了高效、实时的消息推送。本发明为了提高从共享内存读取消息的速度,在往共享内存中存储消息时,已经将消息进行了分类,每个进程的每个客户端可从确定的共享内存块查询待发送的消息,这样可以缩小查找范围,避免每个客户端从所有的消息里查找所需要的消息。
本发明的第一方面提供一种消息推送方法,包括:
获取推送消息和客户端ID;
确定客户端ID所属进程,并将推送消息和客户端ID存入与该进程对应的共享内存块中;
当到达消息推送时间时,各进程同时从对应的共享内存块中读取推送消息,根据推送消息与客户端ID的对应关系,将推送消息发送至与所述客户端ID对应的客户端。
本发明的第二方面提供一种消息推送装置,包括:
数据获取单元,用于获取推送消息和客户端ID;
数据处理单元,用于确定客户端ID所属进程,并将推送消息和客户端ID存入与该进程对应的共享内存块中;
消息推送单元,用于在到达消息推送时间时,各进程同时从对应的共享内存块中读取推送消息,根据推送消息与客户端ID的对应关系,将推送消息发送至与所述客户端ID对应的客户端。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710321261.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:道改隐形桥梁式新型盖挖法
- 下一篇:一种公路桥梁防落梁限位装置