消息推送方法及系统.pdf

上传人:a1 文档编号:6020138 上传时间:2019-04-03 格式:PDF 页数:6 大小:301.23KB
返回 下载 相关 举报
摘要
申请专利号:

CN201611170558.X

申请日:

2016.12.16

公开号:

CN106776072A

公开日:

2017.05.31

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 9/54申请日:20161216|||公开

IPC分类号:

G06F9/54

主分类号:

G06F9/54

申请人:

携程旅游信息技术(上海)有限公司

发明人:

张贵文

地址:

201203 上海市浦东新区张江高科技园区碧波路518号302室

优先权:

专利代理机构:

上海弼兴律师事务所 31283

代理人:

薛琦;罗朗

PDF下载: PDF下载
内容摘要

本发明公开了一种消息推送方法及系统,所述消息推送方法包括以下步骤:S1、通过主线程从数据库消息表中获取待推送消息,并将所述待推送消息放入消息队列中;S2、分别通过多个消费线程定时从所述消息队列中获取待推送消息,并将获取的待推送消息依次推送至外部设备;S3、判断所述消息队列是否为空,若是,则执行步骤S1,若否,执行步骤S2。与现有技术相比,本发明采用多线程任务模式向外部设备推送消息,实现了一次性大量推送消息的目的,提高了推送效率。

权利要求书

1.一种消息推送方法,其特征在于,包括以下步骤:
S1、通过主线程从数据库消息表中获取待推送消息,并将所述待推送消息放入消息队
列中;
S2、分别通过多个消费线程定时从所述消息队列中获取待推送消息,并将获取的待推
送消息依次推送至外部设备;
S3、判断所述消息队列是否为空,若是,则执行步骤S1,若否,执行步骤S2。
2.如权利要求1所述的消息推送方法,其特征在于,通过每个消费线程从所述消息队列
中获取待推送消息的数量均为至少一个。
3.如权利要求1所述的消息推送方法,其特征在于,通过每个消费线程从所述消息队列
中获取待推送消息的周期不同。
4.如权利要求1-3中任一项所述的消息推送方法,其特征在于,所述外部设备为移动终
端。
5.一种消息推送系统,其特征在于,包括:
生产任务模块,用于通过主线程从数据库消息表中获取待推送消息,并将所述待推送
消息放入消息队列中;
消费任务模块,用于分别通过多个消费线程定时从所述消息队列中获取待推送消息,
并将获取的待推送消息依次推送至外部设备;
判断模块,用于判断所述消息队列是否为空,并在是的情况下调用所述生产任务模块,
以及在否的情况下调用所述消费任务模块。
6.如权利要求5所述的消息推送系统,其特征在于,所述消费任务模块中,通过每个消
费线程从所述消息队列中获取待推送消息的数量均为至少一个。
7.如权利要求5所述的消息推送系统,其特征在于,所述消费任务模块中,通过每个消
费线程从所述消息队列中获取待推送消息的周期不同。
8.如权利要求5-7中任一项所述的消息推送系统,其特征在于,所述外部设备为移动终
端。

说明书

消息推送方法及系统

技术领域

本发明涉及通讯领域,特别涉及一种多线程任务模式的消息推送方法及系统。

背景技术

现有的消息推送方式采用单线程工作模式,即无论消息的数量有多大,都是逐条
推送的。举个例子,一个活动推广需要推送几十万的消息量,采用现有的消息推送方式动辄
需要十几个小时才能推送完成,推送耗时过长、推送效率低下,难以适应现在活动推广的步
伐。

发明内容

本发明要解决的技术问题是为了克服现有技术中采用单线程方式推送消息导致
推送效率低下的缺陷,提供一种多线程任务模式的消息推送方法及系统。

本发明是通过下述技术方案来解决上述技术问题的:

一种消息推送方法,其特点在于,包括以下步骤:

S1、通过主线程从数据库消息表中获取待推送消息,并将所述待推送消息放入消
息队列中;

S2、分别通过多个消费线程定时从所述消息队列中获取待推送消息,并将获取的
待推送消息依次推送至外部设备;

S3、判断所述消息队列是否为空,若是,则执行步骤S1,若否,执行步骤S2。

较佳地,通过每个消费线程从所述消息队列中获取待推送消息的数量均为至少一
个。

较佳地,通过每个消费线程从所述消息队列中获取待推送消息的周期不同。

较佳地,所述外部设备为移动终端。

本发明还提供一种消息推送系统,其特点在于,包括:

生产任务模块,用于通过主线程从数据库消息表中获取待推送消息,并将所述待
推送消息放入消息队列中;

消费任务模块,用于分别通过多个消费线程定时从所述消息队列中获取待推送消
息,并将获取的待推送消息依次推送至外部设备;

判断模块,用于判断所述消息队列是否为空,并在是的情况下调用所述生产任务
模块,以及在否的情况下调用所述消费任务模块。

较佳地,所述消费任务模块中,通过每个消费线程从所述消息队列中获取待推送
消息的数量均为至少一个。

较佳地,所述消费任务模块中,通过每个消费线程从所述消息队列中获取待推送
消息的周期不同。

较佳地,所述外部设备为移动终端。

在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实
例。

本发明的积极进步效果在于:与现有技术相比,本发明采用多线程任务模式向外
部设备推送消息,具体地,采用通过设定主线程从数据库消息表中获取待推送消息并将其
放入消息队列中,通过设定多个消费线程定时到消息队列中消费,实现了一次性大量推送
消息的目的,提高了推送效率。

附图说明

图1为本发明实施例的消息推送方法的流程图。

图2为本发明实施例的消息推送系统的结构框图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实
施例范围之中。

本实施例提供一种消息推送方法,如图1所示,包括以下步骤:

步骤101、通过主线程从数据库消息表中获取待推送消息,并将所述待推送消息放
入消息队列中。

步骤102、分别通过多个消费线程定时从所述消息队列中获取待推送消息,并将获
取的待推送消息依次推送至外部设备。

本实施例中,通过每个消费线程从所述消息队列中获取待推送消息的数量可以为
一个,也可以为多个。另外,不同消费线程从消息队列中获取待推送消息的数量可以相同,
也可以不同。

本实施例中,通过每个消费线程从所述消息队列中获取待推送消息的周期不同,
例如,消费线程A1每隔10ms从消息队列中获取一次待推送消息,消费线程A2每隔7ms从消息
队列中获取一次待推送消息。

所述外部设备可以为移动终端,例如手机、平板电脑等。每个消费线程依次将从消
息队列中获取到的待推送消息推送至外部设备,直至将所有获取到的待推送消息推送完
毕。

步骤103、判断所述消息队列是否为空,若是,则返回步骤101,若否,则返回步骤
102。

通过主线程从已有的数据库消息表中获取若干个待推送消息,并将获取的待推送
消息放入消息队列中。需要说明的是,数据库消息表的待推送消息是实时增加的,当消息队
列中待推送消息的数量为0时,说明已经完全被消费线程所消费,这时再通过主线程从数据
库消息表中获取新的待推送消息,并将其放入消息队列中,以供多个消费线程消费。这里所
说的消费是指,消费线程从消息队列中获取待推送消息。

举个具体的例子,设主线程从数据库消息表中获取了10000条与活动推广相关的
待推送消息,并将这些消息放入了消息队列中。消费线程的个数为15个,其中10个消费线程
均每隔20ms从消息队列中获取一次待推送消息,每次获取的数量为3条,且每个消费线程
20ms内发送完这3条消息,另外5个消费线程均每隔5ms从消息队列中获取一次待推送消息,
每次获取的数量为1条,且每个消费线程5ms内发送完这1条消息。那么只需要4s就能够将这
10000条待推送消息推送至大量的移动终端中,大大提升了活动推广的效率。

与现有技术相比,本实施例采用多线程任务模式向外部设备推送消息,具体地,采
用通过设定主线程从数据库消息表中获取待推送消息并将其放入消息队列中,通过设定多
个消费线程定时到消息队列中消费,实现了一次性大量推送消息的目的,提高了推送效率。

本实施例还提供一种消息推送系统20,如图2所示,包括生产任务模块21、消费任
务模块22和判断模块23。

生产任务模块21用于通过主线程从数据库消息表中获取待推送消息,并将所述待
推送消息放入消息队列中;

消费任务模块22用于分别通过多个消费线程定时从所述消息队列中获取待推送
消息,并将获取的待推送消息依次推送至外部设备;

判断模块23用于判断所述消息队列是否为空,并在是的情况下调用生产任务模块
21,以及在否的情况下调用消费任务模块22。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些
仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背
离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更
和修改均落入本发明的保护范围。

消息推送方法及系统.pdf_第1页
第1页 / 共6页
消息推送方法及系统.pdf_第2页
第2页 / 共6页
消息推送方法及系统.pdf_第3页
第3页 / 共6页
点击查看更多>>
资源描述

《消息推送方法及系统.pdf》由会员分享,可在线阅读,更多相关《消息推送方法及系统.pdf(6页珍藏版)》请在专利查询网上搜索。

本发明公开了一种消息推送方法及系统,所述消息推送方法包括以下步骤:S1、通过主线程从数据库消息表中获取待推送消息,并将所述待推送消息放入消息队列中;S2、分别通过多个消费线程定时从所述消息队列中获取待推送消息,并将获取的待推送消息依次推送至外部设备;S3、判断所述消息队列是否为空,若是,则执行步骤S1,若否,执行步骤S2。与现有技术相比,本发明采用多线程任务模式向外部设备推送消息,实现了一次性大量。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1