一种任务分配方法及装置制造方法及图纸

技术编号:14120096 阅读:72 留言:0更新日期:2016-12-08 12:16
本发明专利技术提供了一种任务分配方法及装置,方法包括:根据任务分类个数,构建至少两个消息队列;配置任务分类与消息队列的对应关系;任务生产者每生产出一个任务,确定该任务的优先级;在确定该任务的优先级高于设定级时,将该任务分配到排队个数最少的消息队列中;在确定该任务的优先级不高于设定级时,确定该任务所属的分类;根据该任务所属的分类和对应关系,将该任务分配到对应消息队列中;调度进程在至少两个消息队列中的每一个消息队列中,分别调度相应个数的任务,并将调度的任务分配到普通队列中。根据本方案,可以保证优先级高于设定级的认为被优先消费。

【技术实现步骤摘要】

本专利技术涉及数据处理
,特别涉及一种任务分配方法及装置
技术介绍
随着企业业务的不断发展,企业系统也变得越来越庞大。在企业系统包括的多个子系统之间进行交互时,消息队列的调度系统起着十分重要的作用。目前,在调度系统中,任务生产者每生产一个任务,则将该任务分配到消息队列中进行排队,以等待被子系统进行消费。然而,若消息队列中排队任务较多,且新生产的任务优先级较高,急需被子系统进行消费,那么会导致该优先级高的任务等待很长时间才能被消费。
技术实现思路
本专利技术实施例提供了一种任务分配方法及装置,以保证优先级高的任务被及时消费。第一方面,本专利技术实施例提供了一种任务分配方法,包括:根据任务分类个数,构建至少两个消息队列;配置任务分类与消息队列的对应关系;任务生产者每生产出一个任务,确定该任务的优先级;在确定该任务的优先级高于设定级时,将该任务分配到排队个数最少的消息队列中;在确定该任务的优先级不高于所述设定级时,确定该任务所属的分类;根据该任务所属的分类和所述对应关系,将该任务分配到对应消息队列中;调度进程在所述至少两个消息队列中的每一个消息队列中,分别调度相应个数的任务,并将调度的任务分配到普通队列中。优选地,在所述将该任务分配到排队个数最少的消息队列中之后,进一步包括:确定所述排队个数最少的消息队列是否为空消息队列;若不是空消息队列,则将所述排队个数最少的消息队列与任务分类的对应关系删除,并为与所述排队个数最少的消息队列对应的任务分类重新配置对应的消息队列。优选地,所述调度进程包括生产线程和至少两个消费线程;其中,所述至少两个消费线程与所述至少两个消息队列一一对应;进一步包括:监控每一个消息队列中所包括的优先级高于所述设定级的任务个数,并将监控结果发送给调度进程;进一步包括:所述调度进程接收监控结果,并根据监控结果为每一个消费线程配置消费数量;所述调度进程在所述至少两个消息队列中的每一个消息队列中,分别调度相应个数的任务,包括:每一个消费线程根据配置的消费数量从相应消息队列中取出相应消费数量的任务,并将取出的任务发送给生产线程;生产线程在接收到所述至少两个消费线程发送的任务后,将接收到的任务发送到普通队列。优选地,进一步包括:每一个消费线程在将取出的任务发送给生产线程之后,进入休眠状态,在所述至少两个消费线程全部休眠时,唤醒所述生产线程,所述生产线程在将接收到的任务发送到普通队列之后,唤醒所述至少两个消费线程,所述生产线程进入休眠状态。优选地,所述根据任务分类个数,构建至少两个消息队列,包括:构建的所述至少两个消息队列的个数比任务分类的个数多1;和/或,在监控到所述至少两个消息队列中包括空消息队列时,则将配置的该空消息队列与任务分类的对应关系删除。第二方面,本专利技术实施例还提供了一种任务分配装置,包括:构建单元,用于根据任务分类个数,构建至少两个消息队列;配置单元,用于配置任务分类与消息队列的对应关系;任务生产者,用于每生产出一个任务,确定该任务的优先级;在确定该任务的优先级高于设定级时,将该任务分配到排队个数最少的消息队列中;在确定该任务的优先级不高于所述设定级时,确定该任务所属的分类;根据该任务所属的分类和所述对应关系,将该任务分配到对应消息队列中;调度进程,用于在所述至少两个消息队列中的每一个消息队列中,分别调度相应个数的任务,并将调度的任务分配到普通队列中。优选地,所述任务生产者,进一步用于确定所述排队个数最少的消息队列是否为空消息队列;若不是空消息队列,则将所述排队个数最少的消息队列与任务分类的对应关系删除,并触发所述配置单元为与所述排队个数最少的消息队列对应的任务分类重新配置对应的消息队列。优选地,所述调度进程包括生产线程和至少两个消费线程;其中,所述至少两个消费线程与所述至少两个消息队列一一对应;进一步包括:第一监控单元,用于监控每一个消息队列中所包括的优先级高于所述设定级的任务个数,并将监控结果发送给调度进程;所述调度进程,进一步用于接收监控结果,并根据监控结果为每一个消费线程配置消费数量;每一个消费线程,用于根据配置的消费数量从相应消息队列中取出相应消费数量的任务,并将取出的任务发送给生产线程;生产线程,用于在接收到所述至少两个消费线程发送的任务后,将接收到的任务发送到普通队列。优选地,每一个消费线程,进一步用于在将取出的任务发送给生产线程之后,进入休眠状态,在所述至少两个消费线程全部休眠时,唤醒所述生产线程;所述生产线程,进一步用于在将接收到的任务发送到普通队列之后,唤醒所述至少两个消费线程,所述生产线程进入休眠状态。优选地,所述构建单元,具体用于构建的所述至少两个消息队列的个数比任务分类的个数多1;和/或,第二监控单元,用于在监控到所述至少两个消息队列中包括空消息队列时,则将配置的该空消息队列与任务分类的对应关系删除。本专利技术实施例提供了一种任务分配方法及装置,通过配置任务分类与消息队列的对应关系,以将优先级不高于设定级的任务分配到相应消息队列中,如此每一个消息队列中排队的个数不同,因此,在任务生产者生产的任务优先级高于设定级时,可以将该优先级高于设定级的任务分配到排队个数最少的消息队列,可以保证该优先级高于设定级的任务能够被优选调度到普通队列中,以被子系统及时消费。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一个实施例提供的一种方法流程图;图2是本专利技术一个实施例提供的另一种方法流程图;图3是本专利技术一个实施例提供的任务分配装置对应的任务分配示意图;图4是本专利技术一个实施例提供的装置所在设备的硬件架构图;图5是本专利技术一个实施例提供的装置结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例,基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,本专利技术实施例提供了一种任务分配方法,该方法可以包括以下步骤:步骤101:根据任务分类个数,构建至少两个消息队列;步骤102:配置任务分类与消息队列的对应关系;步骤103:任务生产者每生产出一个任务,确定该任务的优先级;步骤104:在确定该任务的优先级高于设定级时,将该任务分配到排队个数最少的消息队列中;在确定该任务的优先级不高于所述设定级时,确定该任务所属的分类;根据该任务所属的分类和所述对应关系,将该任务分配到对应消息队列中;步骤105:调度进程在所述至少两个消息队列中的每一个消息队列中,分别调度相应个数的任务,并将调度的任务分配到普通队列中。根据上述本专利技术实施例,通过配置任务分类与消息队列的对应关系,以将优先级不高于设定级的任务分配到相应消息队列中,如此每一个消息队列中排队的个数不同,因此,在任务生产者生产的任务优先级高于设定级时,可以将该优先级高于设定级的任务分配到排队个数最少的本文档来自技高网...
一种任务分配方法及装置

【技术保护点】
一种任务分配方法,其特征在于,包括:根据任务分类个数,构建至少两个消息队列;配置任务分类与消息队列的对应关系;任务生产者每生产出一个任务,确定该任务的优先级;在确定该任务的优先级高于设定级时,将该任务分配到排队个数最少的消息队列中;在确定该任务的优先级不高于所述设定级时,确定该任务所属的分类;根据该任务所属的分类和所述对应关系,将该任务分配到对应消息队列中;调度进程在所述至少两个消息队列中的每一个消息队列中,分别调度相应个数的任务,并将调度的任务分配到普通队列中。

【技术特征摘要】
1.一种任务分配方法,其特征在于,包括:根据任务分类个数,构建至少两个消息队列;配置任务分类与消息队列的对应关系;任务生产者每生产出一个任务,确定该任务的优先级;在确定该任务的优先级高于设定级时,将该任务分配到排队个数最少的消息队列中;在确定该任务的优先级不高于所述设定级时,确定该任务所属的分类;根据该任务所属的分类和所述对应关系,将该任务分配到对应消息队列中;调度进程在所述至少两个消息队列中的每一个消息队列中,分别调度相应个数的任务,并将调度的任务分配到普通队列中。2.根据权利要求1所述的方法,其特征在于,在所述将该任务分配到排队个数最少的消息队列中之后,进一步包括:确定所述排队个数最少的消息队列是否为空消息队列;若不是空消息队列,则将所述排队个数最少的消息队列与任务分类的对应关系删除,并为与所述排队个数最少的消息队列对应的任务分类重新配置对应的消息队列。3.根据权利要求1所述的方法,其特征在于,所述调度进程包括生产线程和至少两个消费线程;其中,所述至少两个消费线程与所述至少两个消息队列一一对应;进一步包括:监控每一个消息队列中所包括的优先级高于所述设定级的任务个数,并将监控结果发送给调度进程;进一步包括:所述调度进程接收监控结果,并根据监控结果为每一个消费线程配置消费数量;所述调度进程在所述至少两个消息队列中的每一个消息队列中,分别调度相应个数的任务,包括:每一个消费线程根据配置的消费数量从相应消息队列中取出相应消费数量的任务,并将取出的任务发送给生产线程;生产线程在接收到所述至少两个消费线程发送的任务后,将接收到的任务发送到普通队列。4.根据权利要求3所述的方法,其特征在于,进一步包括:每一个消费线程在将取出的任务发送给生产线程之后,进入休眠状态,在所述至少两个消费线程全部休眠时,唤醒所述生产线程,所述生产线程在将接收到的任务发送到普通队列之后,唤醒所述至少两个消费线程,所述生产线程进入休眠状态。5.根据权利要求1-4中任一所述的方法,其特征在于,所述根据任务分类个数,构建至少两个消息队列,包括:构建的所述至少两个消息队列的个数比任务分类的个数多1;和/或,在监控到所述至少两个消息队列中包括空消息队列时,则将配置的该空消息队列与任务分类的对应关系删除。...

【专利技术属性】
技术研发人员:张裕超
申请(专利权)人:浪潮软件集团有限公司
类型:发明
国别省市:山东;37

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

1