System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种消费优先级实现方法、系统、装置及存储介质制造方法及图纸_技高网

一种消费优先级实现方法、系统、装置及存储介质制造方法及图纸

技术编号:41260102 阅读:3 留言:0更新日期:2024-05-11 09:18
本发明专利技术公开了一种消费优先级实现方法、系统、装置及存储介质。该方法包括:消费消息中间件中的第一消息;根据第一消息的第一优先级,确定第一数据结构中的键对象为第一优先级对应的值对象的计数加1;根据第一消息的第一优先级,确定将键对象为第一优先级,值对象为第一消息的线程的键值对加入第二数据结构;若第一数据结构中存在第二优先级对应的值对象不是零,确定第一消息进入阻塞等待状态,第二优先级的级别高于第一优先级。本申请实施例通过每个消息的优先级级别,按优先级处理各个消息,无需增加系统消耗的情况下,提升优先级处理的效率和灵活性。本方法可以广泛应用于消息中间件技术领域。

【技术实现步骤摘要】

本专利技术涉及消息中间件,尤其是一种消费优先级实现方法、系统、装置及存储介质


技术介绍

1、开源的消息中间件大多没有消息优先级的功能,为了实现按业务优先级消费消息,需要有一个在消费者端的消息优先级处理方案。相关技术中通过设置消费比例实现消息的优先级处理,然而该方法需要预先设定,无法实现优先级处理的动态调节;相关技术中还通过设置优先级消息队列的方式进行消息的优先级处理,然而,该方法需要维护多个消息队列,导致内存消耗过大。


技术实现思路

1、本专利技术的目的在于至少一定程度上解决现有技术中存在的技术问题之一。

2、为此,本专利技术的目的在于提供一种高效快捷的消费优先级实现方法、系统、装置及存储介质。

3、为了达到上述技术目的,本专利技术实施例所采取的技术方案包括:

4、一方面,本专利技术实施例提供了一种消费优先级实现方法,包括以下步骤:

5、本专利技术实施例的消费优先级实现方法,该方法包括:消费消息中间件中的第一消息;根据所述第一消息的第一优先级,确定第一数据结构中的键对象为第一优先级对应的值对象的计数加1;所述第一数据结构用于存放优先级与消息数的对应关系;根据所述第一消息的第一优先级,确定将键对象为第一优先级,值对象为所述第一消息的线程的键值对加入第二数据结构;所述第二数据结构用于存放优先级与线程的映射关系;若所述第一数据结构中存在第二优先级对应的值对象不是零,确定所述第一消息进入阻塞等待状态,所述第二优先级的级别高于所述第一优先级。本申请实施例通过比较每个消息的优先级,确定处理消息的顺序;并通过第一数据结构和第二数据结构实现消息的状态设置。本申请实施例通过每个消息的优先级级别,按优先级处理各个消息,无需增加系统消耗的情况下,提升优先级处理的效率和灵活性。

6、另外,根据本专利技术上述实施例的消费优先级实现方法,还可以具有以下附加的技术特征:

7、进一步地,本专利技术实施例的消费优先级实现方法,所述方法还包括:

8、若所述第一数据结构中比所述第一优先级级别高的优先级对应的值对象均为零,处理所述第一消息,确定所述第一数据结构中的键对象为所述第一优先级对应的值对象的计数减1。

9、进一步地,在本专利技术的一个实施例中,所述方法包括:

10、若所述第一数据结构中的键对象为所述第一优先级对应的值对象的计数为零,唤醒比所述第一优先级的级别低的优先级对应的线程。

11、进一步地,在本专利技术的一个实施例中,所述方法还包括以下步骤:

12、将消息按照优先级分成多个主题,确定优先级主题;

13、消费者订阅所述优先级主题,确定消费的消息的优先级。

14、进一步地,在本专利技术的一个实施例中,所述方法还包括:

15、消费消息中间件中的第二消息、第三消息和第四消息;其中,所述第二消息的优先级高于所述第三消息的第三优先级,所述第三优先级高于所述第四消息的第四优先级;

16、根据所述第二消息的优先级、所述第三优先级和所述第四优先级,更新所述第一数据结构中的计数,及所述第二数据结构中的线程;

17、处理所述第二消息,并将所述第三消息和所述第四消息置于阻塞等待状态。

18、进一步地,在本专利技术的一个实施例中,所述方法还包括:

19、若所述第二消息发送完成,唤醒所述第三优先级和所述第四优先级对应的线程;

20、基于所述第三优先级对应的值对象的计数不是零,确定所述第四消息进入阻塞等待状态;

21、基于所述第二消息的优先级对应的值对象的计数为零,处理所述第三消息。

22、进一步地,在本专利技术的一个实施例中,所述方法还包括:

23、在消费者中定义第一数据结构和第二数据结构。

24、另一方面,本专利技术实施例提出了一种消费优先级实现系统,包括:

25、第一模块,用于消费消息中间件中的第一消息;

26、第二模块,用于根据所述第一消息的第一优先级,确定第一数据结构中的键对象为第一优先级对应的值对象的计数加1;所述第一数据结构用于存放优先级与消息数的对应关系;

27、第三模块,用于根据所述第一消息的第一优先级,确定将键对象为第一优先级,值对象为所述第一消息的线程的键值对加入第二数据结构;所述第二数据结构用于存放优先级与线程的映射关系;

28、第四模块,用于若所述第一数据结构中存在第二优先级对应的值对象不是零,确定所述第一消息进入阻塞等待状态,所述第二优先级的级别高于所述第一优先级。

29、另一方面,本专利技术实施例提供了一种消费优先级实现装置,包括:

30、至少一个处理器;

31、至少一个存储器,用于存储至少一个程序;

32、当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现上述的消费优先级实现方法。

33、另一方面,本专利技术实施例提供了一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于实现上述的消费优先级实现方法。

34、本专利技术实施例的消费优先级实现方法,该方法包括:消费消息中间件中的第一消息;根据所述第一消息的第一优先级,确定第一数据结构中的键对象为第一优先级对应的值对象的计数加1;所述第一数据结构用于存放优先级与消息数的对应关系;根据所述第一消息的第一优先级,确定将键对象为第一优先级,值对象为所述第一消息的线程的键值对加入第二数据结构;所述第二数据结构用于存放优先级与线程的映射关系;若所述第一数据结构中存在第二优先级对应的值对象不是零,确定所述第一消息进入阻塞等待状态,所述第二优先级的级别高于所述第一优先级。本申请实施例通过比较每个消息的优先级,确定处理消息的顺序;并通过第一数据结构和第二数据结构实现消息的状态设置。本申请实施例通过每个消息的优先级级别,按优先级处理各个消息,无需增加系统消耗的情况下,提升优先级处理的效率和灵活性。

本文档来自技高网...

【技术保护点】

1.一种消费优先级实现方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的消费优先级实现方法,其特征在于,所述方法还包括:

3.根据权利要求1所述的消费优先级实现方法,其特征在于,所述方法还包括:

4.根据权利要求1所述的消费优先级实现方法,其特征在于,所述方法还包括以下步骤:

5.根据权利要求1所述的消费优先级实现方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的消费优先级实现方法,其特征在于,所述方法还包括:

7.根据权利要求1所述的消费优先级实现方法,其特征在于,所述方法还包括:

8.一种消费优先级实现系统,其特征在于,包括:

9.一种消费优先级实现装置,其特征在于,包括:

10.一种计算机可读存储介质,其中存储有处理器可执行的程序,其特征在于,所述处理器可执行的程序在由处理器执行时用于实现如权利要求1至7中任一项所述的消费优先级实现方法。

【技术特征摘要】

1.一种消费优先级实现方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的消费优先级实现方法,其特征在于,所述方法还包括:

3.根据权利要求1所述的消费优先级实现方法,其特征在于,所述方法还包括:

4.根据权利要求1所述的消费优先级实现方法,其特征在于,所述方法还包括以下步骤:

5.根据权利要求1所述的消费优先级实现方法,其特征在于,所述方法还包括:

6.根据权利要求5所...

【专利技术属性】
技术研发人员:黄卓杰何俊杰黄微
申请(专利权)人:广州市玄武无线科技股份有限公司
类型:发明
国别省市:

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

1