一种消息发送方法及装置制造方法及图纸

技术编号:15573625 阅读:64 留言:0更新日期:2017-06-11 23:39
本发明专利技术公开了一种消息发送方法及装置,该方法包括确定第二消息循环队列存储的消息的数量,若所述第二消息循环队列存储的消息的数量未超过第一阈值,则获取第一消息循环队列存储的待发送的消息,并存储至所述第二消息循环队列中,对所述第二消息循环队列中的待发送的消息进行处理,并将处理之后的待发送的消息发送至客户端。通过多个消息循环队列分别存储不同的消息,避免了采用一个队列缓冲区频繁的加锁以及内存分配与释放的问题,从而提高消息发送效率,降低系统开销。

【技术实现步骤摘要】
一种消息发送方法及装置
本专利技术实施例涉及软件
,尤其涉及一种消息发送方法及装置。
技术介绍
现有的消息通知系统一般采用一个队列缓冲区来存放从通知库中捞取的数据,然后将队列缓冲区的数据发送到对应的客户端。该方法实现简单,但缓冲区通过使用队列来实现,数据到达时要在队列尾部分配内存,数据发送完成时需要在队列头部释放内存。如果系统承载着较大的数据流,将面临着较大的内存操作导致的开销压力。同时,在多线程环境下,对队列中的数据进行处理将面临着频繁的加解锁操作,极大地影响系统的TPS。
技术实现思路
本专利技术实施例提供一种消息发送方法及装置,用以提高消息发送的效率,降低系统开销。本专利技术实施例提供的一种消息发送方法,包括:确定第二消息循环队列存储的消息的数量;若所述第二消息循环队列存储的消息的数量未超过第一阈值,则获取第一消息循环队列存储的待发送的消息,并存储至所述第二消息循环队列中;对所述第二消息循环队列中的待发送的消息进行处理,并将处理之后的待发送的消息发送至客户端。优选地,在将处理之后的待发送的消息发送至客户端之后,还包括:若所述客户端反馈所述待发送的消息未发送成功,则将所述未发送成功的消息存储至第三消息循环队列中;将所述第三消息循环队列中的未发送成功的消息发送至所述客户端。优选地,将所述第三消息循环队列中的未发送成功的消息发送至所述客户端之后,还包括:若所述未发送成功的消息的发送次数大于第二阈值,则通知服务器所述未发送成功的消息发送失败。优选地,在将所述未发送成功的消息存储至第三消息循环队列中之前,还包括:若所述第三消息循环队列中的未发送成功的消息的数量超过第三阈值,则通知服务器所述待发送的消息未发送成功,并在设定时间之后从所述服务器中重新捞取所述未发送成功的消息至所述第一消息循环队列。优选地,还包括:确定所述第一消息循环队列、第二消息循环队列和第三消息循环队列中存储的消息的总量是否小于第四阈值;若是,则从所述服务器中捞取待发送的消息;将从服务器中捞取的待发送的消息按序存储至所述第一消息循环队列的尾部。优选地,还包括:若所述客户端反馈消息发送成功,则将消息发送成功的状态通知给服务器,以使所述发送成功的消息不被捞取。优选地,还包括:若所述第一消息循环队列存储的待发送的消息超过第五阈值,将从所述服务器捞取的消息丢弃。相应地,本专利技术实施例还提供了一种消息发送装置,包括:确定单元,用于确定第二消息循环队列存储的消息的数量;获取单元,用于若所述第二消息循环队列存储的消息的数量未超过第一阈值,则获取第一消息循环队列存储的待发送的消息,并存储至所述第二消息循环队列中;处理单元,用于对所述第二消息循环队列中的待发送的消息进行处理,并将处理之后的待发送的消息发送至客户端。优选地,所述处理单元还用于:在将处理之后的待发送的消息发送至客户端之后,若所述客户端反馈所述待发送的消息未发送成功,则将所述未发送成功的消息存储至第三消息循环队列中;将所述第三消息循环队列中的未发送成功的消息发送至所述客户端。优选地,所述处理单元还用于:将所述第三消息循环队列中的未发送成功的消息发送至所述客户端之后,若所述未发送成功的消息的发送次数大于第二阈值,则通知服务器所述未发送成功的消息发送失败。优选地,所述处理单元还用于:在将所述未发送成功的消息存储至第三消息循环队列中之前,若所述第三消息循环队列中的未发送成功的消息的数量超过第三阈值,则通知服务器所述待发送的消息未发送成功,并在设定时间之后从所述服务器中重新捞取所述未发送成功的消息至所述第一消息循环队列。优选地,所述确定单元,还用于确定所述第一消息循环队列、第二消息循环队列和第三消息循环队列中存储的消息的总量是否小于第四阈值;所述获取单元,还用于若所述第一消息循环队列、第二消息循环队列和第三消息循环队列中存储的消息的总量小于第四阈值,则从所述服务器中捞取待发送的消息;并将从服务器中捞取的待发送的消息按序存储至所述第一消息循环队列的尾部。优选地,所述处理单元还用于:若所述客户端反馈消息发送成功,则将消息发送成功的状态通知给服务器,以使所述发送成功的消息不被捞取。优选地,所述处理单元还用于:若所述第一消息循环队列存储的待发送的消息超过第五阈值,将从所述服务器捞取的消息丢弃。本专利技术实施例表明,通过确定第二消息循环队列存储的消息的数量,若所述第二消息循环队列存储的消息的数量未超过第一阈值,则获取第一消息循环队列存储的待发送的消息,并存储至所述第二消息循环队列中,对所述第二消息循环队列中的待发送的消息进行处理,并将处理之后的待发送的消息发送至客户端。通过多个消息循环队列分别存储不同的消息,避免了采用一个队列缓冲区频繁的进行内存分配与释放的问题,从而提高消息发送效率,降低系统开销。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种系统架构的结构示意图;图2为本专利技术实施例提供的一种消息发送方法的流程示意图;图3为本专利技术实施例提供的一种系统部署的示意图;图4为本专利技术实施例提供的一种消息发送方法的流程示意图;图5为本专利技术实施例提供的一种消息发送方法的流程示意图;图6为本专利技术实施例提供的一种消息发送方法的流程示意图;图7为本专利技术实施例提供的一种消息发送装置的结构示意图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。图1示例性的示出了本专利技术实施例提供的一种系统架构,该系统架构适用于运行本专利技术实施例中提供的一种消息发送方法。该系统架构包括服务器101、客户端102、消息捞取装置103、消息处理发送装置104和消息存储转发装置105。该服务器101用于提供待发送的消息,消息捞取装置103用于从服务器中捞取消息并存储在循环队列1中,消息处理发送装置104用于从循环队列1中获取待发送消息存储在循环队列2中,并对循环队列2中的消息进行处理和发送至客户端102中,消息存储转发装置105用于发送消息处理发送装置104未发送成功的消息。基于上述描述,图2示出了本专利技术实施例提供的一种消息发送的流程,该流程可以由消息发送装置执行。如图2所示,该方法流程具体步骤包括:步骤201,确定第二消息循环队列存储的消息的数量。步骤202,若所述第二消息循环队列存储的消息的数量未超过第一阈值,则获取第一消息循环队列存储的待发送的消息,并存储至所述第二消息循环队列中。步骤203,对所述第二消息循环队列中的待发送的消息进行处理,并将处理之后的待发送的消息发送至客户端。在本专利技术实施例中,在对第二消息循环队列中的待发送的消息进行处理之前,需要确定第二消息循环队列存储的消息的数量,若该第二消息循环队列存储的消息的数量未超过第一阈值,就可以获取第一消息循环队列存储的待发送的消息,并将该获取的待发送的消息存储至本文档来自技高网...
一种消息发送方法及装置

【技术保护点】
一种消息发送方法,其特征在于,包括:确定第二消息循环队列存储的消息的数量;若所述第二消息循环队列存储的消息的数量未超过第一阈值,则获取第一消息循环队列存储的待发送的消息,并存储至所述第二消息循环队列中;对所述第二消息循环队列中的待发送的消息进行处理,并将处理之后的待发送的消息发送至客户端。

【技术特征摘要】
1.一种消息发送方法,其特征在于,包括:确定第二消息循环队列存储的消息的数量;若所述第二消息循环队列存储的消息的数量未超过第一阈值,则获取第一消息循环队列存储的待发送的消息,并存储至所述第二消息循环队列中;对所述第二消息循环队列中的待发送的消息进行处理,并将处理之后的待发送的消息发送至客户端。2.如权利要求1所述的方法,其特征在于,在将处理之后的待发送的消息发送至客户端之后,还包括:若所述客户端反馈所述待发送的消息未发送成功,则将所述未发送成功的消息存储至第三消息循环队列中;将所述第三消息循环队列中的未发送成功的消息发送至所述客户端。3.如权利要求2所述的方法,其特征在于,将所述第三消息循环队列中的未发送成功的消息发送至所述客户端之后,还包括:若所述未发送成功的消息的发送次数大于第二阈值,则通知服务器所述未发送成功的消息发送失败。4.如权利要求2所述的方法,其特征在于,在将所述未发送成功的消息存储至第三消息循环队列中之前,还包括:若所述第三消息循环队列中的未发送成功的消息的数量超过第三阈值,则通知服务器所述待发送的消息未发送成功,并在设定时间之后从所述服务器中重新捞取所述未发送成功的消息至所述第一消息循环队列。5.如权利要求1至4任一项所述的方法,其特征在于,还包括:确定所述第一消息循环队列、第二消息循环队列和第三消息循环队列中存储的消息的总量是否小于第四阈值;若是,则从所述服务器中捞取待发送的消息;将从服务器中捞取的待发送的消息按序存储至所述第一消息循环队列的尾部。6.如权利要求1至4任一项所述的方法,其特征在于,还包括:若所述客户端反馈消息发送成功,则将消息发送成功的状态通知给服务器,以使所述发送成功的消息不被捞取。7.如权利要求1至4任一项所述的方法,其特征在于,还包括:若所述第一消息循环队列存储的待发送的消息超过第五阈值,将从所述服务器捞取的消息丢弃。8.一种消息发送装置,其特征在于,包括:确定单元,用于确定第二消息循环队列存储的消息的数量;获取单元,用于若所述第二消...

【专利技术属性】
技术研发人员:马聪詹马俊冀乃庚牛天耘周泊仰
申请(专利权)人:中国银联股份有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1