首页 / 专利库 / 电脑零配件 / 计算机系统 / 一种任务处理方法、装置及计算机系统

一种任务处理方法、装置及计算机系统

阅读:689发布:2020-05-08

专利汇可以提供一种任务处理方法、装置及计算机系统专利检索,专利查询,专利分析的服务。并且本 申请 实施例 公开了一种任务处理方法、装置及 计算机系统 ,其中方法包括:根据高低优先级任务计算能 力 配额信息构造至少一个高优先级线程和至少一个低优先级线程;根据任务优先级配置信息将获取的任务标注优先级;构造基于堆排序的优先阻塞任务队列并将标注了优先级的任务按照优先级从高到低的顺序依次放置在任务队列中;并发启动高优先级线程和低优先级线程:在任一高优先级线程在监测到任务队列中队头的任务的优先级不小于预设第一 阈值 时,取出该队头任务在高优先级线程进行处理;在任一低优先级线程在监测到任务队列中队头的任务的优先级不小于第二阈值时,取出该队头任务在低优先级线程进行处理。本申请保证了高优先级任务的及时优先处理。,下面是一种任务处理方法、装置及计算机系统专利的具体信息内容。

1.一种任务处理方法,其特征在于,所述方法包括:
根据预先存储的高优先级任务计算能配额信息构造至少一个高优先级线程并根据预先存储的低优先级任务计算能力配额信息构造至少一个低优先级线程;
根据预先存储的任务优先级配置信息将获取的任务标注优先级;
构造基于堆排序的优先阻塞任务队列并将标注了优先级的任务按照优先级从高到低的顺序依次放置在所述任务队列中;所述任务队列中队头的任务的优先级最高;
并发启动高优先级线程和低优先级线程:
在任一高优先级线程在监测到任务队列中队头的任务的优先级不小于预设第一阈值时,取出该队头任务在高优先级线程进行处理;
在任一低优先级线程在监测到任务队列中队头的任务的优先级不小于第二阈值时,取出该队头任务在低优先级线程进行处理。
2.如权利要求1所述的方法,其特征在于,所述高优先级任务计算能力配额信息和所述低优先级任务计算能力配额信息根据历史数据中的高优先级任务与低优先级任务比例确定。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
任一高优先级线程在监测到任务队列中队头的任务的优先级小于预设第一阈值时进行休眠;
任一低优先级线程在监测到任务队列中队头的任务的优先级小于第二阈值时进行休眠。
4.如权利要求1或2所述的方法,其特征在于,所述方法还包括:接收分布式配置管理引擎发送的高优先级任务计算能力配额信息、低优先级任务计算能力配额信息和任务优先级配置信息,并本地化存储到堆内存中。
5.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
将标注为高优先级的任务放置在高优先级线程中,并将标注为低优先级的任务放置在低优先级线程中;
通过高优先级线程提交所述高优先级任务至所述任务队列;
通过低优先级线程提交所述低优先级任务至所述任务队列。
6.一种任务处理装置,其特征在于,所述装置包括:
高低优先级线程构造单元,用于根据预先存储的高优先级任务计算能力配额信息构造至少一个高优先级线程并根据预先存储的低优先级任务计算能力配额信息构造至少一个低优先级线程;
优先级标注单元,用于根据预先存储的任务优先级配置信息将获取的任务标注优先级;
任务队列单元,用于将标注了优先级的任务按照优先级从高到低的顺序依次放置在预先构造的基于堆排序的优先阻塞任务队列中;所述任务队列中队头的任务的优先级最高;
启动单元,用于并发启动高优先级线程和低优先级线程池;
高优先级线程单元,用于在任一高优先级线程在监测到任务队列中队头的任务的优先级不小于预设第一阈值时,取出该队头任务在该高优先级线程进行处理;
低优先级线程单元,用于在任一低优先级线程在监测到任务队列中队头的任务的优先级不小于第二阈值时,取出该队头任务在该低优先级线程进行处理。
7.如权利要求6所述的装置,其特征在于,所述高优先级任务计算能力配额信息和所述低优先级任务计算能力配额信息根据历史数据中的高优先级任务于低优先级任务比例确定。
8.如权利要求6或7所述的装置,其特征在于,
所述高优先级线程单元,还用于高优先级线程在监测到任务队列中队头的任务的优先级小于预设第一阈值时将该高优先级线程进行休眠;
所述低优先级线程单元,用于低优先级线程在监测到任务队列中队头的任务的优先级小于第二阈值时将该低优先级线程进行休眠。
9.如权利要求6或7所述的装置,其特征在于,所述装置还包括:
任务放置单元,用于将标注为高优先级的任务放置在高优先级线程中,并将标注为低优先级的任务放置在低优先级线程中;
任务提交单元,用于通过高优先级线程提交所述高优先级任务至所述任务队列并通过低优先级线程提交所述低优先级任务至所述任务队列。
10.一种计算机系统,其特征在于,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
根据预先存储的高优先级任务计算能力配额信息构造至少一个高优先级线程并根据预先存储的低优先级任务计算能力配额信息构造至少一个低优先级线程;
根据预先存储的任务优先级配置信息将获取的任务标注优先级;
构造基于堆排序的优先阻塞任务队列并将标注了优先级的任务按照优先级从高到低的顺序依次放置在所述任务队列中;所述任务队列中队头的任务的优先级最高;
并发启动高优先级线程和低优先级线程池:
在任一高优先级线程在监测到任务队列中队头的任务的优先级不小于预设第一阈值时,取出该队头任务在高优先级线程进行处理;
在任一低优先级线程在监测到任务队列中队头的任务的优先级不小于第二阈值时,取出该队头任务在低优先级线程进行处理。

说明书全文

一种任务处理方法、装置及计算机系统

技术领域

[0001] 本申请涉及分布式集群中的任务处理领域,特别是涉及一种任务处理方法、装置及计算机系统。

背景技术

[0002] 随着科技的发展,大数据日益增多,大数据量计算任务随之增加而来,目前对于众多的任务计算机采用了多线程计算方式,同时对多个任务进行处理。
[0003] 比如目前对应大数据最广泛的分布式处理方式,就是对分布式计算集群机器按照统一的数据分片规则分配任务,每个机器在分配的分片范围内进行多线程任务计算,任务按照到来的先后顺序被线程取走进行计算。
[0004] 在业务场景中,不同的任务重要性不同,但按照目前的方式,重要的任务仍需按照到来的先后顺序进行,无法保证重要的任务及时处理的需求,尤其是在业务高峰期时,任务量大,更加无法保证重要任务及时处理的需求。发明内容
[0005] 本申请提供了一种任务处理方法、装置及计算机系统,以解决现有技术中重要任务无法被及时处理的问题。
[0006] 本申请一方面公开一种任务处理方法,所述方法包括:
[0007] 根据预先存储的高优先级任务计算能配额信息构造至少一个高优先级线程并根据预先存储的低优先级任务计算能力配额信息构造至少一个低优先级线程;
[0008] 根据预先存储的任务优先级配置信息将获取的任务标注优先级;
[0009] 构造基于堆排序的优先阻塞任务队列并将标注了优先级的任务按照优先级从高到低的顺序依次放置在所述任务队列中;所述任务队列中队头的任务的优先级最高;
[0010] 并发启动高优先级线程和低优先级线程:
[0011] 在任一高优先级线程在监测到任务队列中队头的任务的优先级不小于预设第一阈值时,取出该队头任务在高优先级线程进行处理;
[0012] 在任一低优先级线程在监测到任务队列中队头的任务的优先级不小于第二阈值时,取出该队头任务在低优先级线程进行处理。
[0013] 优选的,所述高优先级任务计算能力配额信息和所述低优先级任务计算能力配额信息根据历史数据中的高优先级任务于低优先级任务比例确定。
[0014] 优选的,所述方法还包括:
[0015] 任一高优先级线程在监测到任务队列中队头的任务的优先级小于预设第一阈值时进行休眠;
[0016] 任一低优先级线程在监测到任务队列中队头的任务的优先级小于第二阈值时进行休眠。
[0017] 优选的,所述方法还包括:接收分布式配置管理引擎发送的高优先级任务计算能力配额信息、低优先级任务计算能力配额信息和任务优先级配置信息,并本地化存储到堆内存中。
[0018] 优选的,所述方法还包括:
[0019] 将标注为高优先级的任务放置在高优先级线程中,并将标注为低优先级的任务放置在低优先级线程中;
[0020] 通过高优先级线程提交所述高优先级任务至所述任务队列;
[0021] 通过低优先级线程提交所述低优先级任务至所述任务队列。
[0022] 本申请另一方面还公开一种任务处理装置,所述装置包括:
[0023] 高低优先级线程构造单元,用于根据预先存储的高优先级任务计算能力配额信息构造至少一个高优先级线程并根据预先存储的低优先级任务计算能力配额信息构造至少一个低优先级线程;
[0024] 优先级标注单元,用于根据预先存储的任务优先级配置信息将获取的任务标注优先级;
[0025] 任务队列单元,用于将标注了优先级的任务按照优先级从高到低的顺序依次放置在预先构造的基于堆排序的优先阻塞任务队列中;所述任务队列中队头的任务的优先级最高;
[0026] 启动单元,用于并发启动高优先级线程和低优先级线程池;
[0027] 高优先级线程单元,用于在任一高优先级线程在监测到任务队列中队头的任务的优先级不小于预设第一阈值时,取出该队头任务在该高优先级线程进行处理;
[0028] 低优先级线程单元,用于在任一低优先级线程在监测到任务队列中队头的任务的优先级不小于第二阈值时,取出该队头任务在该低优先级线程进行处理。
[0029] 优选的,所述高优先级任务计算能力配额信息和所述低优先级任务计算能力配额信息根据历史数据中的高优先级任务于低优先级任务比例确定。
[0030] 优选的,
[0031] 所述高优先级线程单元,还用于高优先级线程在监测到任务队列中队头的任务的优先级小于预设第一阈值时将该高优先级线程进行休眠;
[0032] 所述低优先级线程单元,用于低优先级线程在监测到任务队列中队头的任务的优先级小于第二阈值时将该低优先级线程进行休眠。
[0033] 优选的,所述装置还包括:
[0034] 任务放置单元,用于将标注为高优先级的任务放置在高优先级线程中,并将标注为低优先级的任务放置在低优先级线程中;
[0035] 任务提交单元,用于通过高优先级线程提交所述高优先级任务至所述任务队列并通过低优先级线程提交所述低优先级任务至所述任务队列。
[0036] 本申请最后一方面还公开一种计算机系统,包括:
[0037] 一个或多个处理器;以及
[0038] 与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
[0039] 根据预先存储的高优先级任务计算能力配额信息构造至少一个高优先级线程并根据预先存储的低优先级任务计算能力配额信息构造至少一个低优先级线程;
[0040] 根据预先存储的任务优先级配置信息将获取的任务标注优先级;
[0041] 构造基于堆排序的优先阻塞任务队列并将标注了优先级的任务按照优先级从高到低的顺序依次放置在所述任务队列中;所述任务队列中队头的任务的优先级最高;
[0042] 并发启动高优先级线程和低优先级线程池:
[0043] 在任一高优先级线程在监测到任务队列中队头的任务的优先级不小于预设第一阈值时,取出该队头任务在高优先级线程进行处理;
[0044] 在任一低优先级线程在监测到任务队列中队头的任务的优先级不小于第二阈值时,取出该队头任务在低优先级线程进行处理。
[0045] 根据本申请提供的具体实施例,本申请公开了以下技术效果:
[0046] 本申请将任务区分高低优先级并按照优先级顺序将任务置于同一任务队列,同时设置高低优先级线程,使得高优先级线程只处理高优先级任务,实现了高优先级线程与低优先级线程的通道隔离,在一定程度上保证了高优先级任务的计算资源。同时,按照优先级顺序将任务置于同一任务队列,高优先级任务可被优先处理,业务高峰期,避免低优先级任务阻塞高优先级任务问题。
[0047] 另外,低优先级线程可处理高低优先级任务,使得高优先级任务业务高峰期时,可自动抢占低优先级任务计算资源逻辑,保证高优先级任务及时处理。
[0048] 通过设置高低优先级任务计算能力配额信息的方式,可根据高低优先级任务的数量比例,动态调整高低优先级线程数量比例,实现了智能动态调整计算资源。
[0049] 当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。附图说明
[0050] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0051] 图1是本申请方法流程图
[0052] 图2A、2B是本申请分布式场景下方法流程图;
[0053] 图3和4是本申请场景一示意图;
[0054] 图5和6是本申请场景二示意图;
[0055] 图7是本申请装置结构图;
[0056] 图8是本申请计算机系统架构图。

具体实施方式

[0057] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
[0058] 如现有技术所述,计算机在进行任务计算时采用多线程并行的方式,按照任务到来的先后顺序取任务进行计算,这导致重要的任务,尤其在任务高峰期时得不到及时的处理。
[0059] 对此,本申请中对任务划分高低优先级,配置高低优先级线程,配置高优先级线程只处理高优先级任务,低优先级线程可处理高优先级任务,一方面保证了高优先级任务的最小计算资源(高优先级线程数量),同时使得高优先级任务高峰期时,可自动抢占低优先级线程资源进行高优先级任务处理。为了保证高优先级任务优先处理,本申请构建了基于堆排序的任务队列,按照优先级从高到低的顺序排列任务,以此保证位于队头的高优先级任务优先被处理。
[0060] 以下将通过具体实施例对本申请进行介绍:
[0061] 实施例1
[0062] 本申请实施例1提供一种任务处理方法,如图1所示,所述方法包括:
[0063] S11、根据预先存储的高优先级任务计算能力配额信息构造至少一个高优先级线程并根据预先存储的低优先级任务计算能力配额信息构造至少一个低优先级线程。
[0064] 配额信息即对计算资源的数量分配信息,比如可包括核心高优先级线程数量、高优先级线程最大数量等。基于该配额信息可以构造对应数量的高优先级线程和低优先级线程,用于后续处理高低优先级任务。该步骤实际是对高低优先级任务计算资源的分配。
[0065] 上述的高优先级任务计算能力配额信息和低优先级任务计算能力配额信息具体可根据历史数据中的高优先级任务与低优先级任务比例确定。
[0066] 优选实施例中,该历史数据需更有针对性。如针对电商平台,双十一大促期间的配额信息可根据往年同一时期的历史数据确定,甚至在同一时期的历史数据基础上做合理预测后确定。
[0067] 上述配额信息经确定后被发送至计算机中进行解析存储,因此可根据实际情况动态调整配额信息以动态调整高低优先级线程数量,即动态调整高低优先级任务的计算资源。
[0068] S12、根据预先存储的任务优先级配置信息将获取的任务标注优先级。
[0069] 任务优先级配置信息比如可以是任务类型与任务优先级的映射关系,根据该映射关系可以获取不同优先级任务对应的任务类型并进行优先级标注,如获取高优先级任务对应的任务类型并将任务标注为优先级1,获取低优先级任务对应的任务类型并将任务标注为优先级0。
[0070] S13、构造基于堆排序的优先阻塞任务队列并将标注了优先级的任务按照优先级从高到低的顺序依次放置在所述任务队列中;所述任务队列中队头的任务的优先级最高。
[0071] 基于该步骤,高低优先级任务被置于同一任务队列中,且任务按照优先级顺序排序,高优先级的任务位于队头,使得高优先级的任务一直被线程优先获取处理。
[0072] 每次获取到新的任务,都会按照优先级重新进行排序。比如当前任务队列均为低优先级任务,此时新获取到的任务为高优先级,则该新的任务将会被置于队头。该任务队列保证了高优先级任务的优先处理。
[0073] S14、并发启动高优先级线程和低优先级线程。
[0074] S141、在任一高优先级线程在监测到任务队列中队头的任务的优先级不小于预设第一阈值时,取出该队头任务在高优先级线程进行处理。
[0075] 当任一高优先级线程在监测到任务队列中队头的任务的优先级小于预设第一阈值时进行休眠。
[0076] S142、在任一低优先级线程在监测到任务队列中队头的任务的优先级不小于第二阈值时,取出该队头任务在低优先级线程进行处理。
[0077] 任一低优先级线程在监测到任务队列中队头的任务的优先级小于第二阈值时进行休眠。
[0078] 高优先级线程与低优先级线程隔离,只用于处理高优先级任务,保证了高优先级任务一直具有自己的最小计算资源。同时低优先级线程可以处理高低优先级任务,在队头一直为高优先级任务的情况下,低优先级线程会被用于处理高优先级任务,即自动抢占低优先级线程。
[0079] 本申请的优选实施例中,高低优先级任务被从数据库获取后,首先被放置在对应的高低优先级线程中,即标注为高优先级的任务放置在高优先级线程中,并标注为低优先级的任务放置在低优先级线程中;之后通过高优先级线程提交所述高优先级任务至所述任务队列,通过低优先级线程提交所述低优先级任务至所述任务队列。
[0080] 在提交任务至任务队列时,若高优先级线程此时为闲置状态,则可直接将高优先级任务进行处理。
[0081] 上述方案可被应用在分布式或非分布式场景下,本申请接下来会以分布式场景为例,对本申请进行详细描述,如图2A、2B所示,包括:
[0082] 步骤一:利用数据库如MySql存储技术对业务数据按照设定业务分片规则进行数据分片化处理(如1000个分片),并对每一个分片进行标号(如0号-999号)。
[0083] 步骤二:利用分布式配置管理引擎如ZooKeeper,实时通知到分布式集群如Wildfly中每一个节点具体的<任务优先级配置>、<高优先级任务计算能力配额信息>、<低优先级任务计算能力配额信息>;Wildfly集群中的每一个Wildfly节点对接收到的配置信息实施本地化存储(存储到JVM堆内存中)。
[0084] 如按照历史高低优先级任务采样数量比例估算高低线程数比例,生成配额信息存储到ZooKeeper。
[0085] 步骤三:Wildfly集群中每一个节点构造基于堆排序的优先阻塞队列作为任务队列(以下简称:任务队列);
[0086] 步骤四:根据步骤二中的<高优先级计算任务计算能力配额>配置,步骤三中的任务队列,准入任务优先级1,构造自定义线程池(以下简称:高优先级线程池);
[0087] 步骤五:根据步骤二中的<低优先级任务计算能力配额配置>配置,步骤三中的任务队列,准入任务优先级0,构造自定义线程池(以下简称:低优先级线程池);
[0088] 步骤六:各个Wildfly计算节点抢占步骤一中某一个标号,并发捞取该标号对应任务数据分片对应的高优先级任务的任务类型(标记任务优先级为1),低优先级任务(标记优先级为0);
[0089] 步骤七:提交步骤六中的高优先级任务(优先级1)到高优先级线程池;高优先级线程池将任务放入步骤三的任务队列,任务队列将任务集合自动调整成满足堆规则的顺序(堆顶任务优先级最高),高优先级线程池中的线程Peek(探查)任务队列堆顶任务(查看但不取出),如果堆顶任务优先级>=1,取出任务进行计算,否则该线程休眠等待下一次探查。
[0090] 步骤八:提交步骤六中的低优先级(优先级0)任务到低优先级线程池;低优先级线程池将任务放入步骤三中的任务队列,任务队列将任务集合自动调整成满足堆规则的顺序(堆顶任务优先级最高),低优先级线程池中的线程Peek(探查)任务队列堆顶任务(查看但不取出),如果堆顶任务优先级>=0,取出任务进行计算,否则该线程休眠等待下一次探查。
[0091] 综上,本申请实现了一种根据任务优先级动态分配线程资源的方法[0092] 1.将常规线程池使用的的链表顺序阻塞任务队列改造成基于堆排序的优先阻塞任务队列,保障高优先级任务能被实时探查到并通过线程进行处理。
[0093] 2.设计了全新的线程池线程处理机制,改变传统线程池线程无条件被动接受任务机制为线程自主探查任务队列队头任务优先级是否达到该线程自身设定的优先级准入条件,有条件的进行先筛选后处理,实现高优先级任务的最低资源配置,保障高优先级任务的实时处理
[0094] 3.实现任务处理业务高峰期,任务队列积压,任务队列自动将后提交的高优先级任务排列到任务队列堆顶的机制,低优先级线程池探查到堆顶高优先级任务(高优先级任务优先级状态为1,大于低优先级线程池优先级0的准入条件),从而获取到该高优先级任务进行计算,达到了高优先级任务抢占低优先级线程池资源的设计目标,保证高优先级任务的实时处理。
[0095] 以下将提供几种具体场景对本申请技术效果进行说明:
[0096] 场景一:高优先级任务流量小,低优先级任务流量大
[0097] 技术效果:大批量低优先级任务不会占用高优先级计算资源,高优先级任务始终能及时获取到高优先级计算资源
[0098] 场景模拟:高优先级线程池线程数2,低优先级线程池线程数8,高优先级任务数2,低优先级任务数6
[0099] 如图3和4所示
[0100] 1)低优先级任务T1P0,T2P0提交到低优先级线程池(T1P0:优先级=0的任务1),进入任务队列;
[0101] 高优先级线程池通过任务队列的PEEK操作,探查到堆头元素T1P0,任务优先级为0,小于准入优先级1(0<1),高优先级线程池线程不捞取,保持空闲状态;
[0102] 低优先级线程池通过任务队列的PEEK操作,探查到堆头元素T1P0,任务优先级为0,满足准入优先级(0>=0),绿色线程1通过任务队列的POLL操作获取T1P0,开始进行计算;
[0103] 2)低优先级任务T3P0-T6P0高优先级任务T1P1,T2P1提交到高优先级线程池[0104] (T1P1:优先级=1的任务1),
[0105] 进入任务队列,任务队列阻塞获取线程,对任务元素按照优先级进行调整P1的任务排列到P0任务的前面;
[0106] 高优先级线程池通过任务队列的PEEK操作,探查到堆头元素T1P1,任务优先级为1,大于等于准入优先级1(1>=1),高优先级线程池线程通过任务队列的POLL操作,获取T1P1,进行计算,获取一次调整一次,T2P1冒到堆头,高优先级线程池重复上述步骤获取到T2P1;
[0107] 低优先级线程池通过任务队列的PEEK操作,探查到堆头元素T2P0,任务优先级为0,满足准入优先级(0>=0),通过任务队列的POLL操作,获取T2P0,进行计算获取一次调整一次,依此类推,完成全部任务获取
[0108] 最终T1P0-T6P0在低优先级线程池中完成计算,T1P1,T2P1在高优先级线程池中完成计算
[0109] 场景2:高优先级任务流量大,低优先级任务流量大。
[0110] 技术效果:低优先级线程计算资源优先协助处理高优先级任务,保证高优先级任务优先计算完成
[0111] 场景模拟:高优先级线程池线程数2,低优先级线程池线程数8,高优先级任务数15,低优先级任务数15
[0112] 如图5和6所示:
[0113] 1)低优先级任务T1P0,T2P0提交到低优先级线程池(T1P0:优先级=0的任务1),进入任务队列;
[0114] 高优先级线程池通过任务队列的PEEK操作,探查到堆头元素T1P0,任务优先级为0,小于准入优先级1(0<1),高优先级线程池线程不捞取,保持空闲状态;
[0115] 低优先级线程池通过任务队列的PEEK操作,探查到堆头元素T1P0,任务优先级为0,满足准入优先级(0>=0),绿色线程1通过任务队列的POLL操作获取T1P0,开始进行计算;
队列调整,T2P0冒至堆头,绿色线程2通过任务队列的POLL操作获取T2P0,开始进行计算;
[0116] 2)低优先级任务T3P0-T15P0提交到低优先级线程池,高优先级任务T1P1-T15P1提交到高优先级线程池;高低优先级线程池线程进行队列取数,队列调整,队列取数,队列调整……循环往复P1优先级的任务始终在堆头,最后高优先级线程池,低优先级线程池总共10个线程资源都在执行高优先级任务。
[0117] 实施例2
[0118] 本申请实施例2还提供一种任务处理装置,如图7所示,所述装置包括:
[0119] 高低优先级线程构造单元71,用于根据预先存储的高优先级任务计算能力配额信息构造至少一个高优先级线程并根据预先存储的低优先级任务计算能力配额信息构造至少一个低优先级线程;
[0120] 优先级标注单元72,用于根据预先存储的任务优先级配置信息将获取的任务标注优先级;
[0121] 任务队列单元73,用于将标注了优先级的任务按照优先级从高到低的顺序依次放置在预先构造的基于堆排序的优先阻塞任务队列中;所述任务队列中队头的任务的优先级最高;
[0122] 启动单元74,用于并发启动高优先级线程和低优先级线程池;
[0123] 高优先级线程单元75,用于在任一高优先级线程在监测到任务队列中队头的任务的优先级不小于预设第一阈值时,取出该队头任务在该高优先级线程进行处理;
[0124] 低优先级线程单元76,用于在任一低优先级线程在监测到任务队列中队头的任务的优先级不小于第二阈值时,取出该队头任务在该低优先级线程进行处理。
[0125] 优选的,所述高优先级任务计算能力配额信息和所述低优先级任务计算能力配额信息根据历史数据中的高优先级任务于低优先级任务比例确定。
[0126] 优选的,
[0127] 所述高优先级线程单元,还用于高优先级线程在监测到任务队列中队头的任务的优先级小于预设第一阈值时将该高优先级线程进行休眠;
[0128] 所述低优先级线程单元,用于低优先级线程在监测到任务队列中队头的任务的优先级小于第二阈值时将该低优先级线程进行休眠。
[0129] 优选的,所述装置还包括:
[0130] 任务放置单元,用于将标注为高优先级的任务放置在高优先级线程中,并将标注为低优先级的任务放置在低优先级线程中;
[0131] 任务提交单元,用于通过高优先级线程提交所述高优先级任务至所述任务队列并通过低优先级线程提交所述低优先级任务至所述任务队列
[0132] 实施例3
[0133] 对应上述实施例,本申请还提供了一种计算机系统,包括一个或多个处理器;以及[0134] 与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
[0135] 根据预先存储的高优先级任务计算能力配额信息构造至少一个高优先级线程并根据预先存储的低优先级任务计算能力配额信息构造至少一个低优先级线程;
[0136] 根据预先存储的任务优先级配置信息将获取的任务标注优先级;
[0137] 构造基于堆排序的优先阻塞任务队列并将标注了优先级的任务按照优先级从高到低的顺序依次放置在所述任务队列中;所述任务队列中队头的任务的优先级最高;
[0138] 并发启动高优先级线程和低优先级线程池:
[0139] 在任一高优先级线程在监测到任务队列中队头的任务的优先级不小于预设第一阈值时,取出该队头任务在高优先级线程进行处理;
[0140] 在任一低优先级线程在监测到任务队列中队头的任务的优先级不小于第二阈值时,取出该队头任务在低优先级线程进行处理。
[0141] 其中,图8示例性的展示出了计算机系统的架构,具体可以包括处理器1510,视频显示适配器1511,磁盘驱动器1512,输入/输出接口1513,网络接口1514,以及存储器1520。上述处理器1510、视频显示适配器1511、磁盘驱动器1512、输入/输出接口1513、网络接口
1514,与存储器1520之间可以通过通信总线1530进行通信连接。
[0142] 其中,处理器1510可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
[0143] 存储器1520可以采用ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1520可以存储用于控制计算机系统1500运行的操作系统1521,用于控制计算机系统1500的低级别操作的基本输入输出系统(BIOS)。另外,还可以存储网页浏览器1523,数据存储管理系统1524,以及图标字体处理系统1525等等。上述图标字体处理系统1525就可以是本申请实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器1520中,并由处理器1510来调用执行。
[0144] 输入/输出接口1513用于连接输入/输出模,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘鼠标触摸屏、麦克、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
[0145] 网络接口1514用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
[0146] 总线1530包括一通路,在设备的各个组件(例如处理器1510、视频显示适配器1511、磁盘驱动器1512、输入/输出接口1513、网络接口1514,与存储器1520)之间传输信息。
[0147] 另外,该计算机系统1500还可以从虚拟资源对象领取条件信息数据库1541中获得具体领取条件的信息,以用于进行条件判断,等等。
[0148] 需要说明的是,尽管上述设备仅示出了处理器1510、视频显示适配器1511、磁盘驱动器1512、输入/输出接口1513、网络接口1514,存储器1520,总线1530等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
[0149] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
[0150] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0151] 以上对本申请所提供的任务处理方法、装置及设备,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈