CN114661496A - 一种消息处理方法、装置、电子设备、存储介质及产品 - Google Patents
一种消息处理方法、装置、电子设备、存储介质及产品 Download PDFInfo
- Publication number
- CN114661496A CN114661496A CN202210297820.6A CN202210297820A CN114661496A CN 114661496 A CN114661496 A CN 114661496A CN 202210297820 A CN202210297820 A CN 202210297820A CN 114661496 A CN114661496 A CN 114661496A
- Authority
- CN
- China
- Prior art keywords
- priority
- message
- processing
- channel
- mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 162
- 238000000034 method Methods 0.000 claims abstract description 54
- 230000008569 process Effects 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 19
- 230000000903 blocking effect Effects 0.000 claims description 5
- 241001522296 Erithacus rubecula Species 0.000 claims 2
- 239000000306 component Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 239000000047 product Substances 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000013067 intermediate product Substances 0.000 description 2
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种消息处理方法、装置、电子设备、存储介质及产品。所述方法包括:按照消息的优先级将消息发送到对应的优先级通道中;根据业务场景需求,选择对应的优先级处理模式对所述优先级通道中的消息进行消费输出处理。其中,所述优先级处理模式通过控制所述优先级通道的开闭实现消息的优先级处理。通过该方法对消息按照优先级进行消费输出处理时,不依赖于其他的功能组件,且支持分布式优先级消费。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种消息处理方法、装置、电子设备、存储介质及产品。
背景技术
消息队列是一种异步通信方式,通过消息生产输入、缓存、消息消费输出三个阶段实现对消息的处理,广泛应用于线程间通信、进程间通信以及服务间通信。特别在微服务框架中,消息队列组件是事件驱动架构的核心组成部分。消息队列的工作原理是构建一个包含缓存的队列,一边接受消息输入,一边接受消息读取。
由于消息队列的广泛应用,目前已经有较多的消息队列实现方法以及封装而成的消息中间件产品。为解决业务中的按优先级处理消息的需求,现有技术可以包括以下几种方案:
方案1、通过一部分消息中间件产品封装实现了优先级消息队列,对消息队列等待消息进行排序,实现高优先级消息先消费输出。
方案2、在消息消费过程中,将消息先缓存到一个全局的队列中,在全局队列中对消息进行排序,然后再进行消息消费输出,典型的比如使用MYSQL数据库对消息进行缓存及排序,或使用Redis数据库的Sorted Set进行缓存和排序。
方案3、从消息消费端获取一定量的消息后,在本地对消息先进行排序后消费输出。
上述技术方案存在以下缺点:方案1需要依赖特定的消息中间产品;方案2需要增加额外的组件依赖,增加存储及IO的消耗;方案3只能满足单点已获取的消息中部分消息按优先级消费输出,无法满足全部或分布式优先级的需求。
发明内容
本发明提供了一种消息处理方法、装置、电子设备、存储介质及产品,以解决不同优先级消息按照优先级和时间顺序进行处理的问题。
根据本发明的一方面,提供了一种消息处理方法,包括:
按照消息的优先级将消息发送到对应的优先级通道中;
根据业务场景需求,选择对应的优先级处理模式对所述优先级通道中的消息进行消费输出处理。
其中,所述优先级处理模式通过控制所述优先级通道的开闭实现消息的优先级处理。
根据本发明的另一方面,提供了一种消息处理装置,包括:
发送模块,用于按照消息的优先级将消息发送到对应的优先级通道中;
处理模块,用于根据业务场景需求,选择对应的优先级处理模式对所述优先级通道中的消息进行消费输出处理。
其中,所述优先级处理模式通过控制所述优先级通道的开闭实现消息的优先级处理。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的消息处理方法
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机
可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的消息处理方法。
本发明实施例的技术方案,通过控制优先级通道的开闭来实现优先级处理的顺序,解决了现有技术依赖于额外的组件以及特定的消息中间产品进行消息处理的问题,以及现有技术中无法支持分布式优先级消费的问题,取到了在不依赖于其他的功能组件,且支持分布式优先级消费的前提下实现对消息按照优先级进行消费输出处理的有益效果。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一所提供的一种消息处理方法的流程示意图;
图2为本发明实施例一所提供的一种消息处理方法中的消息生产输入处理的示意图;
图3为本发明实施例一所提供的一种消息处理方法中的获取模式转换过程示意图;
图4为本发明实施例一所提供的一种消息处理方法中的第一优先级处理模式的示意图;
图5为本发明实施例一所提供的第二优先级处理模式中不同优先级消息消费输出处理示意图
图6为本发明实施例三所提供的一种消息处理方法的结构示意图;
图7为本发明实施例的消息处理方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
实施例一
图1为本发明实施例一所提供的一种消息处理方法的流程示意图,该方法可适用于对优先级消息进行处理的情况,该方法可以由消息处理装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在电子设备上,在本实施例中电子设备包括但不限于:计算机设备。
如图1所示,本发明实施例一提供的一种消息处理方法,包括如下步骤:
S110、按照消息的优先级将消息发送到对应的优先级通道中。
在本实施例中,消息可以理解为具有优先级的消息,消息的个数可以为多个,不同的消息具有不同的优先级,示例性的,优先级可以为0到n-1,其中,数字越大优先级越高。同一优先级消息的个数可以为多个,示例性的,可以包括3个优先级为0的消息。
需要说明的是,本发明实施例的方案包括消息生产输入处理以及消息消费输出处理两部分,本步骤对应消息生产输入处理。在本方案中,消息可以以消息队列的形式输入,即将同一优先级消息形成一个消息队列,输入到对应的优先级通道中。图2为本发明实施例一所提供的一种消息处理方法中的消息生产输入处理的示意图,如图2所示,将优先级消息按照优先级形成消息队列,输入到对应的优先级通道中,示例性的,将由多个优先级为0的消息形的消息队列输入到优先级为0的通道中。
S120、根据业务场景需求,选择对应的优先级处理模式对所述优先级通道中的消息进行消费输出处理。
在本实施例中,本步骤对应消息消费输出处理,可以根据不同的业务场景需求选择对应的优先级处理模式进行消费输出处理。
进一步的,所述优先级处理模式包括第一优先级处理模式和第二优先级处理模式,所述第一优先级处理模式在所述消息进行消费输出处理时对优先级顺序的严格度高于所述第二优先级处理模式。
其中,第一优先级处理模式可以适用于对消息的优先级消费顺序要求较高,输入消息比输出消息多的业务场景;第二优先级处理模式可以适用于对消息的优先级消费顺序要求较低,输入消息比输出消息少,且对处理效率要求较高的业务场景。
其中,优先级处理模式通过控制优先级通道的开闭实现消息的优先级处理。
在本实施例中,第一优先级处理模式和第二优先级处理模式都可以通过控制优先级通道的开闭实现消息按照优先级顺序进行消费输出处理。其中,不限制以何种方式控制优先级通道的开闭,一种可行的方式可以为通过通道控制器控制优先级通道的开闭。
在一个实施例中,在第一优先级处理模式中,根据通道控制器的预设优先级高度可以确定出通道打开的第一优先级通道,按照第一优先级通道的优先级顺序,通过拉模式从第一优先级通道中拉取连续消息,并更新通道控制器的预设优先级高度,继续循环拉取。
具体的,所述第一优先级处理模式包括:通过模式转换器将多个连续消息对应的获取模式转换为拉模式,所述多个连续消息拉取时的等待时长小于预设时长;根据通道控制器的第一预设优先级高度确定多个第一优先级通道,第一优先级通道为通道打开的优先级通道;根据所述多个第一优先级通道从高到低的优先级顺序,通过所述拉模式从所述多个第一优先级通道中拉取连续消息;若拉取到连续消息,则将拉取到的连续消息发送至实际消息处理部分进行处理,并将所述第一预设优先级高度更新为拉取到的连续消息的优先级,根据更新后的第一预设优先级高度重新确定第一优先级通道;若未拉取到连续消息,则将所述第一预设优先级高度降低,根据降低后的第一预设优先级高度重新确定第一优先级通道。
需要进一步说明的是,在上述过程中,重新确定第一优先级通道后,需要继续根据重新确定的第一优先级通道对应的优先级顺序,通过拉模式从多个重新确定的第一优先级通道中对应拉取连续消息;将拉取到的连续消息发送至实际消息处理部分进行处理,并继续对更新后的第一预设优先级高度进行更新,重复执行上述过程,直至所有的连续消息全部完成处理。
其中,预设时长可以为预先设置的时间长度,示例性的,预设时长可以为10秒,可以理解为若拉取一个消息后等待10秒后再拉取到另一个消息,则这两消息可以作为连续消息。
需要说明的是,消息消费输出端获取消息的方式有推和拉两种模式。在第一优先级处理模式中需要通过模式转换器将推模式转换为拉模式,即在第一优先级处理模式中,消息消费输出端都可以通过拉模式获取连续消息。
进一步的,将所述获取模式转换为拉模式的方式为:为每个优先级通道添加一个阻塞式容量为预设值的消息缓存,所述消息缓存提供拉模式。
其中,预设值可以为预先设置的容量值,优选的,预设值可以为1,即为每各连续消息所在的优先级通道添加一个阻塞式容量为1的消息缓存。
图3为本发明实施例一所提供的一种消息处理方法中的获取模式转换过程示意图,如图3所示,为每个优先级消息通道添加一个阻塞式容量为1的消息缓存,有连续消息的优先级通道仅推送一个连续消息到消息缓存中,在该连续消息被拉取前,无法再推送新的连续消息到消息缓存中。
进一步的,所述根据通道控制器的第一优先级高度确定第一优先级通道包括:将优先级大于或等于第一预设优先级高度的优先级通道作为第一优先级通道。
其中,第一预设优先级高度可以为在第一优先级处理模式中预先设置的优先级等级,示例性的,若第一预设优先级高度为5,则可以将优先级等级为5和5以上的优先级通道打开。优选的,第一预设优先级高度可以从0开始设置。
图4为本发明实施例一所提供的第一优先级处理模式中不同优先级消息消费输出处理示意图,示例性的,如图4所示,第一优先级处理模式可以包括如下流程:初始控制器优先级高度为0,即将第一预设优先级高度设置为0,从优先级为n-1的第一优先级通道开始拉取连续消息;若在所有优先级通道内都未拉取到连续消息,则在等待t时间后,即预设时长后,继续在从优先级为n-1的第一优先级通道开始拉取连续消息,直到拉取到连续消息;若在优先级为m的第一优先级通道拉取到连续消息,则将该连续消息发送给实际消息处理部分进行实际处理,并更新通道控制器优先级高度即第一预设优先级高度为m,在等待t时间后,继续在优先级为m到n-1的第一优先级通道内拉取连续消息,若在优先级为m+k的第一优先级通道拉取到连续消息,则将该连续消息发送给实际消息处理部分进行实际处理,并更新控制器优先级高度即第一优先级高度为m+k;若在优先级为m到n-1的第一优先级通道内都未拉取到连续消息,则更新控制器优先级高度为m-1,并在优先级为m-1到n-1的第一优先级通道内拉取连续消息。按照上述步骤循环拉取连续消息,直到所有连续消息拉取完成。
在本实施例中,在第二优先级处理模式中,允许在高优先级间隔中处理低优先级消息。第二优先级处理模式支持拉模式和推模式,对不同优先级通道中的消息进行推送或拉取时不按照优先级通道的优先级进行,通过通道控制器的第二优先级高度确定出通道打开的第二优先级通道,只能在第二优先级通道进行消息的拉取和推送,并将消息推送至优先级队列,从优先级消息队列输出到实际消息处理部分进行处理。
具体的,所述第二优先级处理模式包括多个相同的循环过程,其中,一个循环过程包括:根据通道控制器的第二预设优先级高度确定出多个第二优先级通道,第二优先级通道为通道打开的优先级通道;根据不同消息对应的获取模式,从所述第二优先级通道中获取的消息作为目标消息,所述获取模式包括拉模式和推模式;将所述目标消息放入优先级队列;将所述目标消息从所述优先级队列输出,发送到实际消息处理部分进行处理;根据所述目标消息的优先级、所述第二预设优先级高度以及所述优先级队列的状态,更新所述第二预设优先级高度。
进一步的,更新所述第二预设优先级高度后,根据更新后的第二预设优先级高度重新执行所述一个循环过程。
其中,第二预设优先级高度可以为在第二优先级处理模式中预先设置的优先级等级,示例性的,若第二预设优先级高度为m,则可以将优先级等级为m和m以上的优先级通道打开。优选的,第二预设优先级高度可以从0开始设置。
其中,根据所述目标消息的优先级、所述第二预设优先级高度以及所述优先级队列的状态,更新所述第二预设优先级高度可以包括:若目标消息的优先级大于第二预设优先级高度,则将第二预设优先级高度更新为目标消息的优先级;若目标消息的优先级小于第二预设优先级高度,且优先级队列处于未填满状态,则将第二预设优先级高度更新为目标消息的优先级;若优先级队列处于空状态,则将第二预设优先级高度更新为0。
在本实施例的第二优先级处理模式中,当消息消费输出端推送或拉取高优先级消息时,可以只开放高优先级通道,实现高优先级消息先处理的需求;当高优先级通道没有消息需要处理时,可以优先处理低优先级消息,可以理解为只有在没有高优先级消息需要处理时才开放低优先级通道,对低优先级消息进行处理。
图5为本发明实施例一所提供的第二优先级处理模式中不同优先级消息消费输出处理示意图,示例性的,如图5所示,初始控制器优先级高度为0,即将第二预设优先级高度设置为0,此时可以通过推模式和拉模式获取所有优先级通道内的消息,将消息放入优先级队列,直到优先级队列放满;将优先级队列中的消息按照优先级和时间顺序进行排序,将优先级高、输入早的消息排在出队前列;按照出队顺序将优先级队列中的消息输出到实际消息处理部分进行实际处理;在消息出队时,若消息的优先级为k+m,即消息的优先级大于控制器的优先级高度m,则更新控制器优先级高度为k+m;若消息的优先级为k,k小于控制器的优先级高度m,且优先级队列处于空闲状态即未填满状态,则可以更新控制器优先级高度为k;若优先级队列为空,则可以更新控制器优先级高度为0。其中,在控制器优先级高度为m时,只接收或拉取优先级大于或等于m的优先级通道中的消息。
本发明实施例一提供的一种消息处理方法,首先按照消息的优先级将消息发送到对应的优先级通道中;然后根据业务场景需求,选择对应的优先级处理模式对所述优先级通道中的消息进行消费输出处理;其中,所述优先级处理模式通过控制所述优先级通道的开闭实现消息的优先级处理。上述方法除消息队列本身外不依赖额外的功能组件,能够降低系统复杂度,降低存储和传输的消耗;支持推模式和拉模式,支持分布式消息队列;针对不同业务场景需求,提供第一优先级处理模式和第二优先级处理模式。
实施例二
本发明实施例在上述各实施例的技术方案的基础上,提供了几种具体的实施方式。针对不同业务场景,通过不同的优先级处理模式对消息就那些消费输出处理。
一种具有的实施方式如下:针对资源有限条件下,高优先级任务强制处理场景。
业务中包含任务A,任务B和任务C,优先级由低到高,使用同一处理资源,要求在接收到高优先级任务时,需要第一时间响应,同时在空闲时处理低优先级任务。在此情况下,可以应用本发明任意实施例所述的第一优先级处理模式执行,过程如下:
步骤1、使用消息队列传输处理任务,并构建0、1、2三个消息传输通道即优先级通道,对应发送A,B,C三种任务。
步骤2、使用第一优先级处理模式获取任务消息,并设置等待时间t,将t时间内获取的消息视为连续消息。
步骤3、将获取的连续消息发送给处理资源进行处理,如处理资源在非空闲情况下,比较新获取的任务和当前正在进行的任务优先级,若新任务的优先级较高,则暂停、缓存当前正在进行的任务,并开始新任务。
上述方案可以快速响应高优先级任务请求,并提供一定时间内等待连续高优先级任务消息,确保高优先级任务请求优先处理,避免重复启停低优先级任务。
另一种具有的实施方式如下:针对异步文档处理,优先打开场景。
业务中用户上传文档后,需要经过处理后才能打开,比如杀毒、格式转换处理。当用户批量上传大量文档时,这些文档将按上传的顺序进行异步处理,用户如需打开其中一个文档则需等待前序文档都完成处理。在此情况下,可以应用本发明任意实施例所述的第二优先级处理模式,使需要打开的文档优先处理。过程如下:
步骤1、使用消息队列传输处理任务,并构建0、1两个消息传输通道即优先级通道,对应上传触发的处理任务和用户打开触发的处理任务。
步骤2、当用户上传大量文档时,即生成相同数量优先级为0的处理任务消息进入消息队列时,当用户点击打开请求时,触发一个优先级为1的处理任务消息进入消息队列。
步骤3、使用第二优先级处理模式获取消息,在第一时间获取该消息并通过优先级队列排序处于最先出队的位置,使其成为待处理任务中最先被处理的任务。
上述方案可快速响应用户打开该文档的请求,无需按照上传顺序等待前序任务处理完成,提升了用户使用体验。
实施例三
图6为本发明实施例三所提供的一种消息处理方法的结构示意图,该装置可适用于对优先级消息进行处理的情况,其中该装置可由软件和/或硬件实现,并一般集成在电子设备上。
如图6所示,该装置包括:发送模块110以及处理模块120。
发送模块110,用于按照消息的优先级将消息发送到对应的优先级通道中;
处理模块120,用于根据业务场景需求,选择对应的优先级处理模式对所述优先级通道中的消息进行消费输出处理。
其中,所述优先级处理模式通过控制所述优先级通道的开闭实现消息的优先级处理。
在本实施例中,该装置首先通过发送模块110按照消息的优先级将消息发送到对应的优先级通道中;然后通过处理模块120根据业务场景需求,选择对应的优先级处理模式对所述优先级通道中的消息进行消费输出处理。
本实施例提供了一种消息处理装置,通过该装置对消息按照优先级进行消费输出处理时,不依赖于其他的功能组件,且支持分布式优先级消费。
进一步的,所述优先级处理模式包括第一优先级处理模式和第二优先级处理模式,所述第一优先级处理模式在所述消息进行消费输出处理时对优先级顺序的严格度高于所述第二优先级处理模式。
进一步的,处理模块120包括第一处理模块和第二处理模块,第一处理模块用于通过第一优先级处理模式对优先级通道中的消息进行消费输出处理;第二处理模块用于通过第二优先级处理模式对优先级通道中的消息进行消费输出处理。
具体的,第一处理模块具体用于:通过模式转换器将多个连续消息对应的获取模式转换为拉模式,所述多个连续消息拉取时的等待时长小于预设时长;根据通道控制器的第一预设优先级高度确定多个第一优先级通道,第一优先级通道为通道打开的优先级通道;根据所述多个第一优先级通道从高到低的优先级顺序,通过所述拉模式从所述多个第一优先级通道中拉取连续消息;若拉取到连续消息,则将拉取到的连续消息发送至实际消息处理部分进行处理,并将所述第一预设优先级高度更新为拉取到的连续消息的优先级,根据更新后的第一预设优先级高度重新确定第一优先级通道;若未拉取到连续消息,则将所述第一预设优先级高度降低,根据降低后的第一预设优先级高度重新确定第一优先级通道。
其中,将所述获取模式转换为拉模式的方式为:为每个优先级通道添加一个阻塞式容量为预设值的消息缓存,所述消息缓存提供拉模式。
其中,所述根据通道控制器的第一优先级高度确定第一优先级通道包括:将优先级大于或等于所述第一预设优先级高度的优先级通道作为第一优先级通道。
具体的,第二处理模块用于处理多个相同的循环过程,其中,一个循环过程包括:根据通道控制器的第二预设优先级高度确定出多个第二优先级通道,第二优先级通道为通道打开的优先级通道;根据不同消息对应的获取模式,从所述第二优先级通道中获取的消息作为目标消息,所述获取模式包括拉模式和推模式;将所述目标消息放入优先级队列;将所述目标消息从所述优先级队列输出,发送到实际消息处理部分进行处理;根据所述目标消息的优先级、所述第二预设优先级高度以及所述优先级队列的状态,更新所述第二预设优先级高度。
进一步的,第二处理模块还用于:更新所述第二预设优先级高度后,根据更新后的第二预设优先级高度重新执行所述一个循环过程。
上述消息处理装置可执行本发明任意实施例所提供的消息处理方法,具备执行方法相应的功能模块和有益效果。
实施例四
图7示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图7所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如消息处理方法。
在一些实施例中,消息处理方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的消息处理方法中的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行消息处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (11)
1.一种消息处理方法,其特征在于,所述方法包括:
按照消息的优先级将消息发送到对应的优先级通道中;
根据业务场景需求,选择对应的优先级处理模式对所述优先级通道中的消息进行消费输出处理;
其中,所述优先级处理模式通过控制所述优先级通道的开闭实现消息的优先级处理。
2.根据权利要求1所述的方法,其特征在于,所述优先级处理模式包括第一优先级处理模式和第二优先级处理模式,所述第一优先级处理模式在所述消息进行消费输出处理时对优先级顺序的严格度高于所述第二优先级处理模式。
3.根据权利要求2所述的方法,其特征在于,所述第一优先级处理模式包括:
通过模式转换器将多个连续消息对应的获取模式转换为拉模式,所述多个连续消息拉取时的等待时长小于预设时长;
根据通道控制器的第一预设优先级高度确定多个第一优先级通道,第一优先级通道为通道打开的优先级通道;
根据所述多个第一优先级通道从高到低的优先级顺序,通过所述拉模式从所述多个第一优先级通道中拉取连续消息;
若拉取到连续消息,则将拉取到的连续消息发送至实际消息处理部分进行处理,并将所述第一预设优先级高度更新为拉取到的连续消息的优先级,根据更新后的第一预设优先级高度重新确定第一优先级通道;
若未拉取到连续消息,则将所述第一预设优先级高度降低,根据降低后的第一预设优先级高度重新确定第一优先级通道。
4.根据权利要求3所述的方法,其特征在于,将所述获取模式转换为拉模式的方式为:为每个优先级通道添加一个阻塞式容量为预设值的消息缓存,所述消息缓存提供拉模式。
5.根据权利要求3所述的方法,其特征在于,所述根据通道控制器的第一优先级高度确定第一优先级通道包括:
将优先级大于或等于所述第一预设优先级高度的优先级通道作为第一优先级通道。
6.根据权利要求2所述的方法,其特征在于,所述第二优先级处理模式包括多个相同的循环过程,其中,一个循环过程包括:
根据通道控制器的第二预设优先级高度确定出多个第二优先级通道,第二优先级通道为通道打开的优先级通道;
根据不同消息对应的获取模式,从所述第二优先级通道中获取的消息作为目标消息,所述获取模式包括拉模式和推模式;
将所述目标消息放入优先级队列;
将所述目标消息从所述优先级队列输出,发送到实际消息处理部分进行处理;
根据所述目标消息的优先级、所述第二预设优先级高度以及所述优先级队列的状态,更新所述第二预设优先级高度。
7.根据权利要求6所述的方法,其特征在于,更新所述第二预设优先级高度后,根据更新后的第二预设优先级高度重新执行所述一个循环过程。
8.一种消息处理装置,其特征在于,所述装置包括:
发送模块,用于按照消息的优先级将消息发送到对应的优先级通道中;
处理模块,用于根据业务场景需求,选择对应的优先级处理模式对所述优先级通道中的消息进行消费输出处理。
其中,所述优先级处理模式通过控制所述优先级通道的开闭实现消息的优先级处理。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的消息处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的消息处理方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-7中任一项所述的消息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210297820.6A CN114661496A (zh) | 2022-03-24 | 2022-03-24 | 一种消息处理方法、装置、电子设备、存储介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210297820.6A CN114661496A (zh) | 2022-03-24 | 2022-03-24 | 一种消息处理方法、装置、电子设备、存储介质及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114661496A true CN114661496A (zh) | 2022-06-24 |
Family
ID=82030536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210297820.6A Pending CN114661496A (zh) | 2022-03-24 | 2022-03-24 | 一种消息处理方法、装置、电子设备、存储介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114661496A (zh) |
-
2022
- 2022-03-24 CN CN202210297820.6A patent/CN114661496A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832143B (zh) | 一种物理机资源的处理方法和装置 | |
CN110413210B (zh) | 用于处理数据的方法、设备和计算机程序产品 | |
CN114461393A (zh) | 多任务调度方法、装置、电子设备、系统及自动驾驶车辆 | |
CN116661960A (zh) | 一种批量任务处理方法、装置、设备以及存储介质 | |
CN114048931B (zh) | 补货信息生成方法、装置、电子设备和计算机可读介质 | |
CN114490048A (zh) | 任务执行方法、装置、电子设备及计算机存储介质 | |
CN112860401B (zh) | 任务调度方法、装置、电子设备和存储介质 | |
CN112398669A (zh) | 一种Hadoop部署方法和装置 | |
CN114153614A (zh) | 内存管理方法、装置、电子设备和自动驾驶车辆 | |
CN114205310A (zh) | 一种基于时间敏感网络的数据传输方法、装置和电子设备 | |
CN113742057A (zh) | 一种任务执行方法和装置 | |
CN112559179A (zh) | 一种作业处理方法和装置 | |
CN110825342B (zh) | 存储调度器件和用于处理信息的系统、方法及装置 | |
CN114661496A (zh) | 一种消息处理方法、装置、电子设备、存储介质及产品 | |
CN112711485A (zh) | 一种消息处理方法和装置 | |
CN116048791A (zh) | 一种测试节点的调控方法、装置、电子设备以及存储介质 | |
CN115438007A (zh) | 一种文件合并方法、装置、电子设备及介质 | |
CN114500398A (zh) | 一种处理器协同加速的方法、装置、设备及介质 | |
CN118626233B (zh) | 基于分布式并行大模型的多加速卡多任务调度方法及介质 | |
CN114860403B (zh) | 一种任务调度方法、装置、设备和存储介质 | |
CN115242648B (zh) | 扩缩容判别模型训练方法和算子扩缩容方法 | |
CN117851045A (zh) | 一种消息数据处理的资源调度方法、装置及介质 | |
CN118626267A (zh) | 一种推理任务调度方法、装置、电子设备及存储介质 | |
EP4235424A1 (en) | Resource control method for function computing, device, and medium | |
CN114722006A (zh) | 一种数据传输的控制方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |