消息消费方法技术

技术编号:39497688 阅读:7 留言:0更新日期:2023-11-24 11:27
本申请提供一种消息消费方法

【技术实现步骤摘要】
消息消费方法、装置、设备、存储介质及程序产品


[0001]本申请实施例涉及数据传输领域,尤其涉及一种消息消费方法

装置

设备

存储介质及程序产品


技术介绍

[0002]消息队列是一种保存消息的容器,可以用于保存消息的生产方和消息的消费方之间传输的消息,例如,当消费方需要从生产方获取业务消息时,生产方可以将业务消息存储至消息队列,之后,消费方可以从消息队列中获取业务消息

[0003]当消费方从消息队列中获取业务消息失败时,消费方会从消息队列中重复获取该业务消息,而此时该业务消息仍被存储在消息队列中,那么不仅会出现队列阻塞

消息丢失问题,影响消息消费质量和消费效率,还可能会因为消费方获取消息次数过多,导致消费方服务过载,影响消费方对其他业务的处理


技术实现思路

[0004]本申请提供一种消息消费方法

装置

设备

存储介质及程序产品,以提高消息消费质量和消费效率,降低消费方服务过载风险,保证消息消费的稳定性和可靠性

[0005]第一方面,提供一种消息消费方法,包括:创建
N
个延迟队列,
N
为正整数;针对原始队列中存储的任一目标消息,统计目标消息在当前次被存储至原始队列后消费失败的第一失败次数;在第一失败次数等于第一阈值时,将目标消息存储至
N
个延迟队列中,将目标消息从原始队列中移除;在存储目标消息的延迟队列的延迟时间结束时,基于
N
个延迟队列消费目标消息

[0006]第二方面,提供一种消息消费装置,包括:处理模块

存储模块,其中,处理模块,用于:创建
N
个延迟队列,
N
为正整数;针对原始队列中存储的任一目标消息,统计目标消息在当前次被存储至原始队列后消费失败的第一失败次数;存储模块,用于:在第一失败次数等于第一阈值时,将目标消息存储至
N
个延迟队列中,将目标消息从原始队列中移除;处理模块,还用于:在存储目标消息的延迟队列的延迟时间结束时,基于
N
个延迟队列消费目标消息

[0007]第三方面,提供一种电子设备,包括:处理器和存储器,该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,执行如第一方面或其各实现方式中的方法

[0008]第四方面,提供一种计算机可读存储介质,用于存储计算机程序,计算机程序使得计算机执行如第一方面或其各实现方式中的方法

[0009]第五方面,提供一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行如第一方面或其各实现方式中的方法

[0010]第六方面,提供一种计算机程序,计算机程序使得计算机执行如第一方面或其各实现方式中的方法

[0011]通过本申请技术方案,电子设备可以先创建
N
个延迟队列,
N
为正整数,接着,针对原始队列中存储的任一目标消息,可以统计目标消息在当前次被存储至原始队列后消费失败的第一失败次数,之后,在第一失败次数等于第一阈值时,将目标消息存储至
N
个延迟队列中,将目标消息从原始队列中移除,接着,在存储目标消息的延迟队列的延迟时间结束时,基于
N
个延迟队列消费目标消息

在上述过程中,对于消费失败次数达到第一阈值的目标消息,电子设备可以将其存储至延迟队列中,并从原始队列中将其移除,从而不仅可以保证不会丢失该目标消息,还可以解决由于消费该目标消息失败而造成原始队列阻塞的问题,使得消息的消费方不用继续请求消费该目标消息,而可以消费原始队列中的其他消息

在存储该目标消息的延迟队列的延迟时间结束时,可以继续消费该目标消息,从而保证该目标消息的正常消费

因此,本申请不仅可以提高消息消费质量和消费效率,降低消费方服务过载风险,还可以保证消息消费的稳定性和可靠性

附图说明
[0012]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图

[0013]图1为本申请实施例提供的一种应用场景图;
[0014]图2为本申请实施例提供的一种消息消费方法的流程图;
[0015]图3为本申请实施例提供的一种消息消费方法的示意图;
[0016]图4为本申请实施例提供的另一种消息消费方法的示意图;
[0017]图5为本申请实施例提供的再一种消息消费方法的示意图;
[0018]图6为本申请实施例提供的一种消息消费装置
600
的示意图;
[0019]图7是本申请实施例提供的一种电子设备
700
的示意性框图

具体实施方式
[0020]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚

完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例

基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围

[0021]需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序

应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施

此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程

方法

系统

产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程

方法

产品或设备固有的其它步骤或单元

[0022]如上所述,相关技术中的消息消费方法容易导致消息队列阻塞

消息丢失问题,影响消息消费质量和消费效率,还可能导致消费方服务过载,影响消费方对其他业务的处理

[0023]为了解决上述技术问题,本申请的专利技术构思是:电子设备可以将消费失败次数达到第一阈值的消息存储至延迟队列中,并从原始队列中将其移除,在存储该消息的延迟队列的延迟时间结束时,继续消费该目标消息

[0024]应理解的是本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种消息消费方法,其特征在于,包括:创建
N
个延迟队列,
N
为正整数;针对原始队列中存储的任一目标消息,统计所述目标消息在当前次被存储至所述原始队列后消费失败的第一失败次数;在所述第一失败次数等于第一阈值时,将所述目标消息存储至所述
N
个延迟队列中,将所述目标消息从所述原始队列中移除;在存储所述目标消息的延迟队列的延迟时间结束时,基于所述
N
个延迟队列消费所述目标消息
。2.
根据权利要求1所述的方法,其特征在于,所述在所述第一失败次数等于第一阈值时,将所述目标消息存储至所述
N
个延迟队列中,将所述目标消息从所述原始队列中移除,包括:在所述第一失败次数等于所述第一阈值时,统计所述目标消息消费失败的第二失败次数,所述第二失败次数为目标消息被存储至所述
N
个延迟队列的次数;根据所述第二失败次数,从所述
N
个延迟队列中确定目标延迟队列;将所述目标消息存储至所述目标延迟队列中,将所述目标消息从所述原始队列中移除
。3.
根据权利要求2所述的方法,其特征在于,所述
N
个延迟队列的延迟时间不同;所述根据所述第二失败次数,从所述
N
个延迟队列中确定目标延迟队列,包括:按照延迟时间由小至大的顺序,对所述
N
个延迟队列进行排序,得到延迟队列组合;在所述第二失败次数小于或者等于
N
时,将所述延迟队列组合中第第二失败次数个延迟队列确定为所述目标延迟队列;在所述第二失败次数大于
N
时,将所述延迟队列组合中第
N
个延迟队列确定为所述目标延迟队列
。4.
根据权利要求2所述的方法,其特征在于,所述
N
个延迟队列的延迟时间不同;所述根据所述第二失败次数,从所述
N
个延迟队列中确定目标延迟队列,包括:确定第二阈值;在所述第二失败次数小于或者等于所述第二阈值时,从第一延迟队列中确定所述目标延迟队列;在所述第二失败次数大于所述第二阈值时,从第二延迟队列中确定所述目标延迟队列;其中,所述第一延迟队列为所述
N
个延迟队列中延迟时间小于第三阈值的延迟队列,...

【专利技术属性】
技术研发人员:赵轩超
申请(专利权)人:富途网络科技深圳有限公司
类型:发明
国别省市:

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

1