CN111831424B - 一种任务处理方法、系统及装置 - Google Patents
一种任务处理方法、系统及装置 Download PDFInfo
- Publication number
- CN111831424B CN111831424B CN201910307313.4A CN201910307313A CN111831424B CN 111831424 B CN111831424 B CN 111831424B CN 201910307313 A CN201910307313 A CN 201910307313A CN 111831424 B CN111831424 B CN 111831424B
- Authority
- CN
- China
- Prior art keywords
- target
- task
- processing unit
- directed acyclic
- algorithm package
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title abstract description 11
- 238000012545 processing Methods 0.000 claims abstract description 287
- 238000000034 method Methods 0.000 claims abstract description 64
- 230000008569 process Effects 0.000 claims abstract description 45
- 125000002015 acyclic group Chemical group 0.000 claims description 31
- 230000003993 interaction Effects 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000001960 triggered effect Effects 0.000 claims description 6
- 230000005856 abnormality Effects 0.000 claims description 4
- 239000000758 substrate Substances 0.000 claims 1
- 102100025682 Dystroglycan 1 Human genes 0.000 description 15
- 101000855983 Homo sapiens Dystroglycan 1 Proteins 0.000 description 15
- 102100030685 Alpha-sarcoglycan Human genes 0.000 description 6
- 101100224343 Arabidopsis thaliana DOF2.5 gene Proteins 0.000 description 6
- 101150019520 SGCA gene Proteins 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明实施例提供了一种任务处理方法、系统及装置,方法包括:获取有向无环图,根据有向无环图,确定当前待执行任务、目标处理单元、目标资源及目标算法包的信息;根据目标算法包的信息,获取目标算法包,并将目标算法包发送至目标处理单元,利用目标处理单元中的目标资源对目标算法包进行处理;可见,本方案中,有向无环图中包括每个任务对应的处理单元的信息、每个任务在其对应的处理单元中申请的资源的信息,也就是说,可以根据实际需求设定处理单元与任务之间的对应关系,同一个有向无环图中的任务可以由不同的处理单元执行,提高了方案的灵活性。
Description
技术领域
本发明涉及大数据技术领域,特别是涉及一种任务处理方法、系统及装置。
背景技术
DAG(Directed Acyclic Graph、有向无环图),是一种由具有依赖关系的多个任务组成的有向无环图。利用DAG可以对大数据进行处理,一些相关处理方案包括:先根据需要执行的任务的情况构建DAG,然后将构建的DAG下发至服务器,服务器执行DAG中的任务。
这种方案中,同一个DAG只能发送至一台服务器,也就是说,只能由同一台服务器执行一个DAG中的全部任务,不能根据实际需求设定服务器与任务之间的对应关系(哪台服务器执行哪个任务),方案的灵活性较差。
发明内容
本发明实施例的目的在于提供一种任务处理方法、系统及装置,以提高方案的灵活性。
为达到上述目的,本发明实施例提供了一种任务处理方法,所述方法包括:
获取有向无环图,所述有向无环图中包括多个任务之间的执行顺序、每个任务对应的处理单元的信息、每个任务在其对应的处理单元中申请的资源的信息、以及每个任务对应的算法包的信息;
根据所述有向无环图,确定当前待执行任务;以及确定所述当前待执行任务对应的处理单元,作为目标处理单元;以及确定所述当前待执行任务在所述目标处理单元中申请的资源,作为目标资源;以及确定所述当前待执行任务对应的算法包的信息,作为目标算法包的信息;
根据所述目标算法包的信息,获取所述当前待执行任务对应的算法包,作为目标算法包,并将所述目标算法包发送至所述目标处理单元,利用所述目标处理单元中的所述目标资源对所述目标算法包进行处理。
可选的,所述获取有向无环图,包括:
确定各任务之间的执行顺序,作为待处理顺序;
在预先存储的有向无环图模板,选择与所述待处理顺序相匹配的有向无环图模板,所述有向无环图模板中包括多个任务之间的执行顺序;
生成各任务对应的算法包,以及确定各任务对应的处理单元,以及确定各任务在其对应的处理单元中申请的资源;
将所生成的算法包的标识、所确定的处理单元的标识以及所确定的资源的信息添加至所选择的有向无环图模板,得到有向无环图。
可选的,所述获取有向无环图,包括:获取多个有向无环图;
所述根据所述有向无环图,确定当前待执行任务,包括:
根据所述多个有向无环图之间的顺序,确定当前待处理有向无环图;
根据所述当前待处理有向无环图,确定当前待执行任务;
在所述将所述目标算法包发送至所述目标处理单元之后,还包括:
根据所述多个有向无环图之间的顺序,确定新的待处理有向无环图;
根据所述新的待处理有向无环图,确定新的待执行任务。
可选的,在所述确定所述当前待执行任务在所述目标处理单元中申请的资源,作为目标资源之后,还包括:
判断所述目标处理单元中的可用资源是否大于所述目标资源;
如果大于,则执行所述根据所述目标算法包的信息,获取所述当前待执行任务对应的算法包,作为目标算法包的步骤。
可选的,在所述利用所述目标处理单元中的目标资源对所述算法包进行处理之后,还包括:
监听所述目标资源对所述算法包的处理结果;
若所述处理结果为完成,则返回所述根据所述有向无环图,确定当前待执行任务的步骤。
为达到上述目的,本发明实施例还提供了一种任务处理系统,所述系统包括:调度单元、执行单元和处理单元;其中,
所述调度单元,用于获取有向无环图,所述有向无环图中包括多个任务之间的执行顺序、每个任务对应的处理单元的信息、每个任务在其对应的处理单元中申请的资源的信息、以及每个任务对应的算法包的信息;根据所述有向无环图,确定当前待执行任务;以及确定所述当前待执行任务对应的处理单元,作为目标处理单元;以及确定所述当前待执行任务在所述目标处理单元中申请的资源,作为目标资源;以及确定所述当前待执行任务对应的算法包的信息,作为目标算法包的信息;将所述目标处理单元的信息、所述目标资源的信息、所述目标算法包的信息发送至所述执行单元;
所述执行单元,用于根据所述目标算法包的信息,获取所述当前待执行任务对应的算法包,作为目标算法包;将所述目标算法包发送至目标处理单元,利用所述目标处理单元中的所述目标资源对所述目标算法包进行处理。
可选的,所述系统还包括交互单元;
所述交互单元,用于确定各任务之间的执行顺序,作为待处理顺序;在预先存储的有向无环图模板,选择与所述待处理顺序相匹配的有向无环图模板,所述有向无环图模板中包括多个任务之间的执行顺序;生成各任务对应的算法包,以及确定各任务对应的处理单元,以及确定各任务在其对应的处理单元中申请的资源;将所生成的算法包的标识、所确定的处理单元的标识以及所确定的资源的信息添加至所选择的有向无环图模板,得到有向无环图;将所述有向无环图发送至所述调度单元。
可选的,所述调度单元,还用于:
获取多个有向无环图,将所述多个有向无环图添加至队列;根据所述队列中各个有向无环图之间的顺序,确定当前待处理有向无环图;根据所述当前待处理有向无环图,确定当前待执行任务;
以及在所述执行单元将所述目标算法包发送至所述目标处理单元之后,根据所述队列中各个有向无环图之间的顺序,确定新的待处理有向无环图;根据所述新的待处理有向无环图,确定新的待执行任务。
可选的,所述调度单元,还用于向所述目标处理单元发送资源请求,所述资源请求中包括所述目标资源的信息;
所述处理单元,还用于根据所述资源请求,判断自身可用资源是否大于所述目标资源;并将判断结果反馈至所述调度单元;
所述调度单元,还用于在所述判断结果为是的情况下,将所述目标处理单元的信息、所述目标资源的信息、所述目标算法包的信息发送至所述执行单元。
可选的,所述执行单元还用于:
将所述目标算法包、所述目标算法包的主进程、所述目标资源的信息组装成协调指令;
将所述协调指令发送至所述目标处理单元,以使所述目标处理单元调用所述主进程,并利用所述目标资源对所述目标算法包进行处理。
可选的,所述执行单元还用于:监听所述目标资源对所述算法包的处理过程;若处理过程中出现异常,则重新触发所述所述目标资源对所述算法包的处理;将所述目标资源对所述算法包的处理结果反馈给所述调度单元,所述处理结果为:处理完成或处理失败;
所述调度单元还用于:在接收到的处理结果为处理完成的情况下,继续根据所述有向无环图,确定新的当前待执行任务。
为达到上述目的,本发明实施例还提供了一种任务处理装置,所述装置包括:
获取模块,用于获取有向无环图,所述有向无环图中包括多个任务之间的执行顺序、每个任务对应的处理单元的信息、每个任务在其对应的处理单元中申请的资源的信息、以及每个任务对应的算法包的信息;
确定模块,用于根据所述有向无环图,确定当前待执行任务;以及确定所述当前待执行任务对应的处理单元,作为目标处理单元;以及确定所述当前待执行任务在所述目标处理单元中申请的资源,作为目标资源;以及确定所述当前待执行任务对应的算法包的信息,作为目标算法包的信息;
处理模块,用于根据所述目标算法包的信息,获取所述当前待执行任务对应的算法包,作为目标算法包,并将所述目标算法包发送至所述目标处理单元,利用所述目标处理单元中的所述目标资源对所述目标算法包进行处理。
本发明所示实施例中,有向无环图中包括每个任务对应的处理单元的信息、每个任务在其对应的处理单元中申请的资源的信息,也就是说,可以根据实际需求设定处理单元与任务之间的对应关系,同一个有向无环图中的任务可以由不同的处理单元执行,提高了方案的灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种任务处理方法的流程示意图;
图2为本发明实施例提供的一种有向无环图;
图3为本发明实施例提供的一种有向无环图模板示意图;
图4为本发明实施例提供的另一种有向无环图模板示意图;
图5为本发明实施例提供的调度单元队列示意图;
图6为本发明实施例提供的一种任务处理系统的结构示意图;
图7为本发明实施例提供的一种任务处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决上述技术问题,本发明实施例提供了一种任务处理方法、系统及装置,该方法及装置可以应用于各种电子设备,具体不做限定。下面首先对本发明实施例提供的任务处理方法进行详细介绍。
图1为本发明实施例提供的一种任务处理方法的流程示意图,包括:
S101:获取有向无环图,有向无环图中包括多个任务之间的执行顺序、每个任务对应的处理单元的信息、每个任务在其对应的处理单元中申请的资源的信息、以及每个任务对应的算法包的信息。
有向无环图,即DAG,可以如图2所示,图2中的DAG包括5个任务,任务A、任务B、任务C、任务D和任务E,这5个任务之间的执行顺序为:先执行任务A和任务B,任务A和任务B执行完成后再执行任务C,任务C完成后再执行任务D和任务E。
DAG中还包括每个任务对应的处理单元的信息;本发明实施例中所说的“处理单元”可以为处理设备,或者也可以为虚拟单元;一种情况下,一个处理单元可以为一个资源池,举例来说,离散的计算集群可以注册成为一个资源池,一个资源池可以为一台或多台处理设备中的资源形成的。
一种实施方式中,有向无环图中的“处理单元的信息”可以为资源池的标识。继续参考图2,任务A对应的处理单元的信息为:资源池1,任务B对应的处理单元的信息为:资源池2,任务C对应的处理单元的信息为:资源池1,任务D对应的处理单元的信息为:资源池1,任务E对应的处理单元的信息为:资源池2。
一种实施方式中,有向无环图中的“每个任务在其对应的处理单元中申请的资源的信息”可以包括申请的CPU(Central Processing Unit,中央处理器)内核(core)数量及内存(memory)大小,内存大小的的单位可以为G。继续参考图2,任务A申请的资源的信息为:2core,2memory,也就是2个内核及2G内存,任务B申请的资源的信息为:2core,3memory,任务C申请的资源的信息为:3core,2memory,任务D申请的资源的信息为:2core,2memory,任务E申请的资源的信息为:2core,2memory。
一种实施方式中,有向无环图中的“算法包的信息”可以为算法包的标识和/或算法包的地址,图2中未示出“算法包的信息”。
作为一种实施方式中,S101可以包括:确定各任务之间的执行顺序,作为待处理顺序;在预先存储的有向无环图模板,选择与所述待处理顺序相匹配的有向无环图模板,所述有向无环图模板中包括多个任务之间的执行顺序;生成各任务对应的算法包,以及确定各任务对应的处理单元,以及确定各任务在其对应的处理单元中申请的资源;将所生成的算法包的标识、所确定的处理单元的标识以及所确定的资源的信息添加至所选择的有向无环图模板,得到有向无环图。
本实施方式中,预先生成多个DAG模板,该模板中包括任务之间的执行顺序,或者说包括DAG的结构关系。比如,预先生成的模板1可以如图3所示,图3中包括5个任务,这5个任务的执行顺序为:先执行任务1和任务2,再执行任务3,最后执行任务4和任务5。预先生成的模板2可以如图4所示,图3中包括6个任务,这6个任务的执行顺序为:先执行任务1和任务2,再执行任务3,再执行任务4,最后执行任务5和任务6;预先生成的模板可以有多种,不再一一列举。将这些模板进行存储。
假设存在5个需要处理的任务:任务A、任务B、任务C、任务D和任务E,这5个任务之间的执行顺序为:先执行任务A和任务B,任务A和任务B执行完成后再执行任务C,任务C完成后再执行任务D和任务E。为了方便描述,将这5个任务之间的执行顺序称为待处理顺序。在预先存储的有向无环图模板,选择与待处理顺序相匹配的有向无环图模板。上述模板1中的执行顺序与待处理顺序相匹配,选择模板1作为与待处理顺序相匹配的有向无环图模板。
分别生成任务A、任务B、任务C、任务D和任务E对应的算法包,分别确定这5个任务对应的处理单元,分别确定这5个任务在其对应的处理单元中申请的资源。然后将这5个任务对应的算法包的标识及存储地址、处理单元的标识、申请的资源信息添加到模板1中,便得到了图2所示的DAG。在模板中添加内容得到DAG的过程可以理解为对DAG进行快照或者镜像。
一些相关方案中,不能对DAG进行改造,而且生成的DAG不能重复利用,而本实施方式中,可以重复利用DAG模板,而且对DAG进行快照可以理解为对DAG进行改造,可见本实施方式解决了DAG不能改造及重复利用的问题。
S102:根据有向无环图,确定当前待执行任务;以及确定当前待执行任务对应的处理单元,作为目标处理单元;以及确定当前待执行任务在目标处理单元中申请的资源,作为目标资源;以及确定当前待执行任务对应的算法包的信息,作为目标算法包的信息。
如上所述,有向无环图中包括多个任务之间的执行顺序,可以根据该执行顺序确定当前待执行任务。举例来说,参考图2,假设还未执行任务A和任务B,则当前待执行任务为任务A和任务B,假设已执行任务A和任务B,但还未执行任务C,则当前待执行任务为任务C,等等,不再赘述。
假设当前待执行任务为任务C,则将任务C对应的处理单元“资源池1”确定为目标处理单元,将任务C在资源池1中申请的资源“3core,2memory”确定为目标资源,假设任务C对应的算法包的信息包括:算法包的标识C1、算法包的存储地址C2,则目标算法包的信息包括:标识C1和存储地址C2。
S103:根据目标算法包的信息,获取当前待执行任务对应的算法包,作为目标算法包,并将目标算法包发送至目标处理单元,利用目标处理单元中的目标资源对目标算法包进行处理。
如上所述,一种实施方式中,目标算法包的信息可以包括目标算法包的标识,这种实施方式中,可以预先约定算法包的标识与存储地址之间的映射关系,根据该映射关系及目标算法包的标识,可以确定目标算法包的存储地址,从该存储地址中可以获取到目标算法包。
如上所述,一种实施方式中,目标算法包的信息可以包括目标算法包的存储地址,从该存储地址中可以获取到目标算法包。
仍以任务C作为当前待执行任务为例进行说明,获取到任务C对应的算法包后,将该算法包发送至资源池1,利用资源池1中的“3core,2memory”对该算法包进行处理。该算法包中包括一些可执行文件,对该算法包进行处理也就是执行这些可执行文件,也就是执行任务C。
一种实施方式中,S101中可以获取多个有向无环图;这样,S102中可以根据所述多个有向无环图之间的顺序,确定当前待处理有向无环图;根据所述当前待处理有向无环图,确定当前待执行任务。本实施方式中,在将目标算法包发送至所述目标处理单元之后,根据所述多个有向无环图之间的顺序,确定新的待处理有向无环图;根据所述新的待处理有向无环图,确定新的待执行任务。
举例来说,获取到多个有向无环图后,可以将该多个有向无环图添加至队列,然后按照队列中的顺序,依次对队列中的有向无环图进行处理。参考图5,假设获取到3个有向无环图,DAG1、DAG2和DAG3,将这三个DAG添加至调度单元队列中。假设DAG1中先执行任务W和任务X,DAG2中先执行任务Y,DAG3中先执行任务Z,假设任务W对应的资源池为资源池1,任务X对应的资源池为资源池2,任务Y对应的资源池为资源池1,任务Z对应的资源池为资源池2。
首先将任务W和任务X确定为当前待执行任务;确定任务W对应的资源池为资源池1,获取任务W对应的算法包,将该算法包发送至资源池1;另外,确定任务X对应的资源池为资源池2,获取任务X对应的算法包,将该算法包发送至资源池2。然后将任务Y确定为当前待执行任务;确定任务Y对应的资源池为资源池1,获取任务Y对应的算法包,将该算法包发送至资源池1。然后将任务Z确定为当前待执行任务;确定任务Z对应的资源池为资源池2,获取任务Z对应的算法包,将该算法包发送至资源池2。
可见,本实施方式中,将算法包发送至目标处理单元(资源池)后便确定下一待执行任务,而不是等待目标处理单元中的目标资源对算法包处理完毕后再确定下一待执行任务,这样,减少了等待时间,提高了处理任务的效率,而且减少了等待过程中部分资源闲置的情况,提高了资源利用率。
作为一种实施方式,在S102之后可以判断目标处理单元中的可用资源是否大于目标资源;如果大于,则执行S103。
举例来说,假设处理单元为资源池,资源池可以记录自身的资源使用情况;假设当前待执行任务A对应的目标资源为“2core,2memory”,则可以先向资源池申请分配“2core,2memory”的资源,资源池根据自身的资源使用情况,判断可用资源是否大于“2core,2memory”,如果不大于,可以等待,直至可用资源大于“2core,2memory”的情况下,调用“2core,2memory”处理任务A。
上述一种实施方式中,将算法包发送至目标处理单元后便确定下一待执行任务,而不是等待目标处理单元中的目标资源对算法包处理完毕后再确定下一待执行任务;结合本实施方式,则确定下一待执行任务的目标处理单元及目标资源后,判断该目标处理单元中的可用资源是否大于目标资源;如果大于,再获取该下一待执行任务对应的算法包,并该目标算法包发送至目标处理单元;如果不大于则等待,直至可用资源大于目标资源的情况下,获取该下一待执行任务对应的算法包,并该目标算法包发送至目标处理单元。
如果处理单元中的可用资源较多,各任务都能成功申请目标资源,则图5中,先处理任务W、任务X、任务Y、任务Z,都处理完成后,也就是等待这些任务对应的目标资源对算法包处理完毕后,再处理任务P、任务Q和任务S。如果处理单元中可用资源较少,某任务申请的目标资源小于可用资源,则等待。可见,这种情况下,对多个DAG进行处理的过程中,并行处理的任务个数与DAG中各任务的执行顺序以及处理单元中的资源情况有关。
作为一种实施方式,可以监听所述目标资源对所述算法包的处理结果;若所述处理结果为完成,则返回执行S102,也就是继续根据有向无环图,确定新的当前待执行任务。
举例来说,如果处理结果为失败,可以输出报警信息,通知相关人员进行处理,或者也可以触发重试机制,重新对相应任务进行处理,具体不做限定。
应用本发明图1所示实施例,有向无环图中包括每个任务对应的处理单元的信息、每个任务在其对应的处理单元中申请的资源的信息,也就是说,可以根据实际需求设定处理单元与任务之间的对应关系,同一个有向无环图中的任务可以由不同的处理单元执行,提高了方案的灵活性。
本发明实施例还提供了一种任务处理系统,如图6所示,所述系统包括:调度单元、执行单元和多个处理单元(处理单元1……处理单元N,N为大于1的正整数);其中,
调度单元,用于获取有向无环图,所述有向无环图中包括多个任务之间的执行顺序、每个任务对应的处理单元的信息、每个任务在其对应的处理单元中申请的资源的信息、以及每个任务对应的算法包的信息;根据所述有向无环图,确定当前待执行任务;以及确定所述当前待执行任务对应的处理单元,作为目标处理单元;以及确定所述当前待执行任务在所述目标处理单元中申请的资源,作为目标资源;以及确定所述当前待执行任务对应的算法包的信息,作为目标算法包的信息;将所述目标处理单元的信息、所述目标资源的信息、所述目标算法包的信息发送至执行单元;
执行单元,用于根据所述目标算法包的信息,获取所述当前待执行任务对应的算法包,作为目标算法包;将所述目标算法包发送至目标处理单元,利用所述目标处理单元中的所述目标资源对所述目标算法包进行处理。
本实施例中的“处理单元”可以为处理设备,或者也可以为虚拟单元;一种情况下,一个处理单元可以为一个资源池,举例来说,离散的计算集群可以注册成为一个资源池,一个资源池可以为一台或多台处理设备中的资源形成的。
一种实施方式中,该系统还可以包括交互单元,该交互单元可以确定各任务之间的执行顺序,作为待处理顺序;在预先存储的有向无环图模板,选择与所述待处理顺序相匹配的有向无环图模板,所述有向无环图模板中包括多个任务之间的执行顺序;生成各任务对应的算法包,以及确定各任务对应的处理单元,以及确定各任务在其对应的处理单元中申请的资源;将所生成的算法包的标识、所确定的处理单元的标识以及所确定的资源的信息添加至所选择的有向无环图模板,得到有向无环图;将所述有向无环图发送至所述调度单元。
举例来说,该交互单元可以与用户进行交互,交互单元可以通过用户操作确定各任务之间的执行顺序、各任务对应的处理单元,以及各任务在其对应的处理单元中申请的资源。另外,也可以由用户生成各任务对应的算法包,并将该算法包上传至指定存储地址,交互单元获取该算法包的存储地址及标识。
在模板中添加内容得到DAG的过程可以理解为对DAG进行快照或者镜像。一些相关方案中,不能对DAG进行改造,而且生成的DAG不能重复利用,而本实施方式中,用户可以重复利用DAG模板,而且对DAG进行快照可以理解为对DAG进行改造,可见本实施方式解决了DAG不能改造及重复利用的问题。
一种实施方式中,调度单元可以获取多个有向无环图,将所述多个有向无环图添加至队列;根据所述队列中各个有向无环图之间的顺序,确定当前待处理有向无环图;根据所述当前待处理有向无环图,确定当前待执行任务;
以及在所述执行单元将所述目标算法包发送至所述目标处理单元之后,根据所述队列中各个有向无环图之间的顺序,确定新的待处理有向无环图;根据所述新的待处理有向无环图,确定新的待执行任务。
举例来说,调度单元获取到多个有向无环图后,可以将该多个有向无环图添加至队列,然后按照队列中的顺序,依次对队列中的有向无环图进行处理。参考图5,假设调度单元获取到3个有向无环图,DAG1、DAG2和DAG3,将这三个DAG添加至调度单元队列中。假设DAG1中先执行任务W和任务X,DAG2中先执行任务Y,DAG3中先执行任务Z,假设任务W对应的资源池为资源池1,任务X对应的资源池为资源池2,任务Y对应的资源池为资源池1,任务Z对应的资源池为资源池2。
首先,调度单元将任务W和任务X确定为当前待执行任务;执行单元获取任务W对应的算法包,将该算法包发送至资源池1;另外,执行单元获取任务X对应的算法包,将该算法包发送至资源池2。然后,调度单元将任务Y确定为当前待执行任务;执行单元获取任务Y对应的算法包,将该算法包发送至资源池1。然后,调度单元将任务Z确定为当前待执行任务;执行单元获取任务Z对应的算法包,将该算法包发送至资源池2。
可见,本实施方式中,执行单元将算法包发送至目标处理单元(资源池)后,调度单元便确定下一待执行任务,而不是等待目标处理单元中的目标资源对算法包处理完毕后再确定下一待执行任务,这样,减少了等待时间,提高了处理任务的效率,而且减少了等待过程中部分资源闲置的情况,提高了资源利用率。
一种实施方式中,调度单元还可以向目标处理单元发送资源请求,所述资源请求中包括所述目标资源的信息;处理单元还可以根据该资源请求,判断自身可用资源是否大于所述目标资源;并将判断结果反馈至所述调度单元;调度单元还可以在所述判断结果为是的情况下,将所述目标处理单元的信息、所述目标资源的信息、所述目标算法包的信息发送至所述执行单元。
一种情况下,调度单元可以直接与处理单元进行通信;另一种情况下,调度单元可以通过执行单元与处理单元进行通信,比如,调度单元可以将资源请求发送至执行单元,执行单元再将该资源请求转发至处理单元,处理单元将判断结果发送至执行单元,执行单元再将判断结果转发至调度单元。
以处理单元为资源池为例来说,资源池可以记录自身的资源使用情况;假设当前待执行任务A对应的资源池为资源池1,任务A对应的目标资源为“2core,2memory”,则调度单元可以先向资源池1申请分配“2core,2memory”的资源,资源池1根据自身的资源使用情况,判断可用资源是否大于“2core,2memory”,并将判断结果反馈至调度单元;如果判断结果为大于,则表示调度单元向资源池1申请资源成功,这种情况下,调度单元将目标处理单元的信息(资源池1)、目标资源的信息(2core,2memory)、目标算法包的信息发送至执行单元。执行单元根据该目标算法包的信息,获取任务A对应的算法包,作为目标算法包,将目标算法包发送至资源池1,利用资源池1中的2core,2memory对目标算法包进行处理。
如果判断结果为不大于,则表示调度单元向资源池1申请资源失败;这种情况下,资源池可以等待,直到可用资源大于“2core,2memory”的情况下向调度单元反馈判断结果。或者,资源池也可以将“不大于”的判断结果反馈给调度单元,调度单元等待一段时间后,再向资源池申请分配“2core,2memory”的资源,等待时长可以根据实际情况设定,具体数值不做限定。
上述一种实施方式中,执行单元将算法包发送至目标处理单元后,调度单元便确定下一待执行任务,而不是等待目标处理单元中的目标资源对算法包处理完毕后再确定下一待执行任务;结合本实施方式,则调度单元确定下一待执行任务的目标处理单元及目标资源后,目标处理单元判断自身的可用资源是否大于目标资源;如果大于,执行单元再获取该下一待执行任务对应的算法包,并该目标算法包发送至目标处理单元;如果不大于则等待,直至可用资源大于目标资源的情况下,执行单元获取该下一待执行任务对应的算法包,并该目标算法包发送至目标处理单元。
如果处理单元中的可用资源较多,各任务都能成功申请目标资源,则图5中,先处理任务W、任务X、任务Y、任务Z,都处理完成后,也就是等待这些任务对应的目标资源对算法包处理完毕后,再处理任务P、任务Q和任务S。如果处理单元中可用资源较少,某任务申请的目标资源小于可用资源,则等待。可见,这种情况下,对多个DAG进行处理的过程中,并行处理的任务个数与DAG中各任务的执行顺序以及处理单元中的资源情况有关。
一种实施方式中,执行单元还用于:将所述目标算法包、所述目标算法包的主进程、所述目标资源的信息组装成协调指令;将所述协调指令发送至所述目标处理单元,以使所述目标处理单元调用所述主进程,并利用所述目标资源对所述目标算法包进行处理。
举例来说,可以通过yarn(Yet Another Resource Negotiator,另一种资源协调者)对资源池进行管理,这样,该协调指令可以为yarn命令。执行单元可以将目标算法包、目标算法包的主进程、目标资源的信息组装成yarn命令,然后调用yarn API(ApplicationProgramming Interface,应用程序编程接口)将yarn命令发送到相应资源池中。该资源池解析该yarn命令,得到目标算法包、目标算法包的主进程和目标资源的信息,根据目标资源的信息调用资源池中的相应资源,利用该资源以及目标算法包的主进程,对该目标算法包进行处理。
一种实施方式中,执行单元还用于:监听所述目标资源对所述算法包的处理过程;若处理过程中出现异常,则重新触发所述所述目标资源对所述算法包的处理;将所述目标资源对所述算法包的处理结果反馈给所述调度单元,所述处理结果为:处理完成或处理失败;
所述调度单元还用于:在接收到的处理结果为处理完成的情况下,继续根据所述有向无环图,确定新的当前待执行任务。
如上所述,可以通过yarn对资源池进行管理,这种情况下,执行单元可以调用yarnAPI监听资源池对任务的处理情况,也就是监听目标资源对算法包的处理过程,如果处理过程中出现异常,执行单元可以触发重试机制,重新对该任务进行处理,可以重试M次,M次都失败后向调度单元反馈处理结果“失败”,M为正整数。如果调度单元接收到“失败”的处理结果,表示对DAG的处理失败,这种情况下,可以输出报警信息,通知相关人员进行处理,也可以重新对该DAG进行处理,具体不做限定。
下面介绍一种具体的实施方式:
系统中设置有交互单元,该交互单元可以与用户进行交互。举例来说,该交互单元可以包括交互界面,通过用户在交互界面中的操作,可以确定需要执行的多个任务、各任务之间的执行顺序、各任务对应的资源池、以及各任务在其对应的资源池中申请的资源。另外,可以通过用户操作,生成各任务对应的算法包,并将该算法包上传至指定存储地址。
假设存在5个需要处理的任务:任务A、任务B、任务C、任务D和任务E,这5个任务之间的执行顺序为:先执行任务A和任务B,任务A和任务B执行完成后再执行任务C,任务C完成后再执行任务D和任务E。为了方便描述,将这5个任务之间的执行顺序称为待处理顺序。
假设确定任务A对应的资源池为资源池1,任务B对应的资源池为资源池2,任务C对应的资源池为资源池1,任务D对应的资源池为资源池1,任务E对应的资源池为资源池2。假设确定任务A申请的资源的信息为:2core,2memory,任务B申请的资源的信息为:2core,3memory,任务C申请的资源的信息为:3core,2memory,任务D申请的资源的信息为:2core,2memory,任务E申请的资源的信息为:2core,2memory。
假设任务A对应的算法包的标识为A1,该算法包的存储地址为A2,任务B对应的算法包的标识为B1,该算法包的存储地址为B2,任务C对应的算法包的标识为C1,该算法包的存储地址为C2,任务D对应的算法包的标识为D1,该算法包的存储地址为D2,任务E对应的算法包的标识为E1,该算法包的存储地址为E2。
在预先存储的多个DAG模板中,选择一个与上述待处理顺序相匹配的DAG模板,假设所选择的模板为模板1。将上述生成的各算法包的标识及存储地址、上述确定的资源池的标识、上述确定的资源池中资源的信息添加至模板1,得到DAG,在模板中添加内容得到DAG的过程可以理解为对DAG进行快照或者镜像。
举例来说,生成的DAG可以包括三层结构:pipeline_model(管道模型)、pipeline_node(管道节点)和algorithm(运算法则);其中,pipeline_model可以记录DAG的整体信息,比如表1所示,pipeline_model可以包括pipeline_model的唯一标识、DAG名称、DAG版本号等等;pipeline_node可以记录DAG中各节点之间的依赖关系,DAG中的各节点表示各任务,各节点的依赖关系也就是各任务之间的执行顺序,比如表2所示,pipeline_node可以包括pipeline_node的唯一标识、节点对应的算法包id、节点所属的DAG、节点的子节点和父亲节点(也就是各节点之间的依赖关系)、申请的资源池及资源池中的资源信息、节点名称等等;algorithm可以记录算法包信息,比如表3所示,algorithm可以包括algorithm的唯一标识、算法包的存储地址、算法包的主进程、算法包所属节点的名称等等。
表1(pipeline_model)
/>
表2(pipeline_node)
字段名 | 类型 | 长度 | 描述 |
id | varchar | 32 | 唯一标识 |
algorithm_id | varchar | 32 | 算法包id |
pipeline_model_id | varchar | 32 | 该节点所属的DAG |
children_id | json | 该节点的子节点 | |
parents_id | json | 该节点的父亲节点 | |
extension_param | text | 该算法可能需要的外带参数 | |
resource_param | json | 申请的资源池及资源池中的资源信息 | |
name | varchar | 64 | 该节点的名称 |
表3(algorithm)
字段名 | 类型 | 长度 | 描述 |
id | varchar | 32 | 唯一标识 |
name | varchar | 64 | 所属节点的名称 |
file_path | varchar | 255 | 算法包的存储地址 |
run_class_name | varchar | 255 | 算法包的主进程 |
上述快照生成的DAG可以保存到数据库中,该DAG与模板之间互不影响。
举例来说,生成的DAG可以为定时任务,可以采用qurtaz(一种开源的分布式定时任务管理工具)作为定时任务的触发机。比如,可以将DAG的定时信息保存到qurtaz中,并记录DAG的状态;DAG的状态可以包括待执行、调度中、已完结、已取消四种状态。
举例来说,假设3月1日生成一个DAG,该DAG的定时信息为:3月14日至16日执行该DAG中的任务;3月1日至3月13日,该DAG的状态为待执行,qurtaz在3月14日当天触发执行该DAG,该DAG的状态由待执行变为调度中;假设该DAG正常执行,到3月17日该DAG的状态由调度中变为已完成。假设设定该DAG为每月14日至16日执行,但是在3月18日用户设定4月份不再执行该DAG,则将该DAG的状态更改为已取消。
假设qurtaz触发执行多个DAG,调度单元将这多个DAG添加至队列中,DAG添加至队列的过程中可以包括队列中、入队列失败、运行中、已取消、成功六种状态。参考图5,假设队列中存在3个DAG:DAG1、DAG2和DAG3,假设DAG1中先执行任务W和任务X,DAG2中先执行任务Y,DAG3中先执行任务Z,则将任务W、任务X、任务Y和任务Z确定为当前待执行任务,分别执行这四个任务。
下面以一个任务“任务X”为例进行说明:假设任务X对应的资源池为资源池1,任务X对应的目标资源为“2core,2memory”,调度单元可以先向资源池1申请分配“2core,2memory”的资源,资源池1根据自身的资源使用情况,判断可用资源是否大于“2core,2memory”,并将判断结果反馈至调度单元;如果判断结果为大于,则表示调度单元向资源池1申请资源成功,这种情况下,调度单元将资源池1、目标资源的信息(2core,2memory)以及目标算法包的信息发送至执行单元。
执行单元根据该目标算法包的信息,获取任务X对应的算法包,作为目标算法包。执行单元可以将目标算法包、目标算法包的主进程、目标资源的信息组装成yarn命令,然后调用yarn API将yarn命令发送到资源池1中。资源池1解析该yarn命令,得到目标算法包、目标算法包的主进程和目标资源的信息,根据目标资源的信息调用资源池1中的“2core,2memory”,利用“2core,2memory”以及目标算法包的主进程,对该目标算法包进行处理。
执行单元还可以调用yarn API监听资源池1对任务X的处理情况,也就是监听“2core,2memory”对该目标算法包的处理过程,如果处理过程中出现异常,执行单元可以触发重试机制,重新对该任务进行处理,可以重试M次,M次都失败后向调度单元反馈处理结果“失败”,M为正整数。如果调度单元接收到“失败”的处理结果,表示对DAG的处理失败,这种情况下,可以输出报警信息,通知相关人员进行处理,也可以重新对该DAG进行处理,具体不做限定。
如果“2core,2memory”对该目标算法包处理完成,则执行单元向调度单元反馈处理结果“完成”,调度单元确定下一个待执行任务,一种情况下,可以优先确定同一个DAG(处理完成的任务所在DAG)中的任务为下一个待执行任务。
另外,对一个任务处理完成后,该任务在资源池中占用的资源被释放,比如任务X执行完成后,“2core,2memory”的资源被释放。
应用本实施方式,第一方面,可以根据实际需求设定处理单元与任务之间的对应关系,同一个有向无环图中的任务可以由不同的处理单元执行,提高了方案的灵活性。第二方面,可以重复利用DAG模板,并且对DAG进行改造。第三方面,DAG与模板之间互不影响,解除了任务与DAG之间的耦合。
本发明实施例还提供了一种任务处理装置,如图7所示,包括:
获取模块701,用于获取有向无环图,所述有向无环图中包括多个任务之间的执行顺序、每个任务对应的处理单元的信息、每个任务在其对应的处理单元中申请的资源的信息、以及每个任务对应的算法包的信息;
确定模块702,用于根据所述有向无环图,确定当前待执行任务;以及确定所述当前待执行任务对应的处理单元,作为目标处理单元;以及确定所述当前待执行任务在所述目标处理单元中申请的资源,作为目标资源;以及确定所述当前待执行任务对应的算法包的信息,作为目标算法包的信息;
处理模块703,用于根据所述目标算法包的信息,获取所述当前待执行任务对应的算法包,作为目标算法包,并将所述目标算法包发送至所述目标处理单元,利用所述目标处理单元中的所述目标资源对所述目标算法包进行处理。
作为一种实施方式,获取模块701,具体可以用于:确定各任务之间的执行顺序,作为待处理顺序;在预先存储的有向无环图模板,选择与所述待处理顺序相匹配的有向无环图模板,所述有向无环图模板中包括多个任务之间的执行顺序;生成各任务对应的算法包,以及确定各任务对应的处理单元,以及确定各任务在其对应的处理单元中申请的资源;将所生成的算法包的标识、所确定的处理单元的标识以及所确定的资源的信息添加至所选择的有向无环图模板,得到有向无环图。
作为一种实施方式,获取模块701还可以用于:获取多个有向无环图;确定模块702还可以用于:根据所述多个有向无环图中包括的任务之间的执行顺序,确定多个当前待执行任务。
作为一种实施方式,所述装置还包括:判断模块,用于判断所述目标处理单元中的可用资源是否大于所述目标资源;如果大于,则触发处理模块703。
作为一种实施方式,所述装置还包括:监听模块,用于监听所述目标资源对所述算法包的处理结果;若所述处理结果为完成,则返回触发确定模块702。
本发明所示实施例中,有向无环图中包括每个任务对应的处理单元的信息、每个任务在其对应的处理单元中申请的资源的信息,也就是说,可以根据实际需求设定处理单元与任务之间的对应关系,同一个有向无环图中的任务可以由不同的处理单元执行,提高了方案的灵活性。
本发明所示实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种任务处理方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种任务处理方法,其特征在于,所述方法包括:
确定各任务之间的执行顺序,作为待处理顺序;
在预先存储的有向无环图模板,选择与所述待处理顺序相匹配的有向无环图模板,所述有向无环图模板中包括多个任务之间的执行顺序;
生成各任务对应的算法包,以及确定各任务对应的处理单元,以及确定各任务在其对应的处理单元中申请的资源;
将所生成的算法包的标识、所确定的处理单元的标识以及所确定的资源的信息添加至所选择的有向无环图模板,得到有向无环图,所述有向无环图中包括多个任务之间的执行顺序、每个任务对应的处理单元的信息、每个任务在其对应的处理单元中申请的资源的信息、以及每个任务对应的算法包的信息;
根据所述有向无环图,确定当前待执行任务;以及确定所述当前待执行任务对应的处理单元,作为目标处理单元;以及确定所述当前待执行任务在所述目标处理单元中申请的资源,作为目标资源;以及确定所述当前待执行任务对应的算法包的信息,作为目标算法包的信息;
根据所述目标算法包的信息,获取所述当前待执行任务对应的算法包,作为目标算法包,并将所述目标算法包发送至所述目标处理单元,利用所述目标处理单元中的所述目标资源对所述目标算法包进行处理。
2.根据权利要求1所述的方法,其特征在于,
所述得到有向无环图,包括:得到多个有向无环图;
所述根据所述有向无环图,确定当前待执行任务,包括:
根据所述多个有向无环图之间的顺序,确定当前待处理有向无环图;
根据所述当前待处理有向无环图,确定当前待执行任务;
在所述将所述目标算法包发送至所述目标处理单元之后,还包括:
根据所述多个有向无环图之间的顺序,确定新的待处理有向无环图;
根据所述新的待处理有向无环图,确定新的待执行任务。
3.根据权利要求1所述的方法,其特征在于,在所述确定所述当前待执行任务在所述目标处理单元中申请的资源,作为目标资源之后,还包括:
判断所述目标处理单元中的可用资源是否大于所述目标资源;
如果大于,则执行所述根据所述目标算法包的信息,获取所述当前待执行任务对应的算法包,作为目标算法包的步骤。
4.根据权利要求1所述的方法,其特征在于,在所述利用所述目标处理单元中的目标资源对所述算法包进行处理之后,还包括:
监听所述目标资源对所述算法包的处理结果;
若所述处理结果为完成,则返回所述根据所述有向无环图,确定当前待执行任务的步骤。
5.一种任务处理系统,其特征在于,所述系统包括:交互单元、调度单元、执行单元和处理单元;其中,
所述交互单元,用于确定各任务之间的执行顺序,作为待处理顺序;在预先存储的有向无环图模板,选择与所述待处理顺序相匹配的有向无环图模板,所述有向无环图模板中包括多个任务之间的执行顺序;生成各任务对应的算法包,以及确定各任务对应的处理单元,以及确定各任务在其对应的处理单元中申请的资源;将所生成的算法包的标识、所确定的处理单元的标识以及所确定的资源的信息添加至所选择的有向无环图模板,得到有向无环图;将所述有向无环图发送至所述调度单元;
所述调度单元,用于获取有向无环图,所述有向无环图中包括多个任务之间的执行顺序、每个任务对应的处理单元的信息、每个任务在其对应的处理单元中申请的资源的信息、以及每个任务对应的算法包的信息;根据所述有向无环图,确定当前待执行任务;以及确定所述当前待执行任务对应的处理单元,作为目标处理单元;以及确定所述当前待执行任务在所述目标处理单元中申请的资源,作为目标资源;以及确定所述当前待执行任务对应的算法包的信息,作为目标算法包的信息;将所述目标处理单元的信息、所述目标资源的信息、所述目标算法包的信息发送至所述执行单元;
所述执行单元,用于根据所述目标算法包的信息,获取所述当前待执行任务对应的算法包,作为目标算法包;将所述目标算法包发送至目标处理单元,利用所述目标处理单元中的所述目标资源对所述目标算法包进行处理。
6.根据权利要求5所述的系统,其特征在于,所述调度单元,还用于:
获取多个有向无环图,将所述多个有向无环图添加至队列;根据所述队列中各个有向无环图之间的顺序,确定当前待处理有向无环图;根据所述当前待处理有向无环图,确定当前待执行任务;
以及在所述执行单元将所述目标算法包发送至所述目标处理单元之后,根据所述队列中各个有向无环图之间的顺序,确定新的待处理有向无环图;根据所述新的待处理有向无环图,确定新的待执行任务。
7.根据权利要求5所述的系统,其特征在于,所述调度单元,还用于向所述目标处理单元发送资源请求,所述资源请求中包括所述目标资源的信息;
所述处理单元,还用于根据所述资源请求,判断自身可用资源是否大于所述目标资源;并将判断结果反馈至所述调度单元;
所述调度单元,还用于在所述判断结果为是的情况下,将所述目标处理单元的信息、所述目标资源的信息、所述目标算法包的信息发送至所述执行单元。
8.根据权利要求5所述的系统,其特征在于,所述执行单元还用于:
将所述目标算法包、所述目标算法包的主进程、所述目标资源的信息组装成协调指令;
将所述协调指令发送至所述目标处理单元,以使所述目标处理单元调用所述主进程,并利用所述目标资源对所述目标算法包进行处理。
9.根据权利要求5所述的系统,其特征在于,所述执行单元还用于:监听所述目标资源对所述算法包的处理过程;若处理过程中出现异常,则重新触发所述所述目标资源对所述算法包的处理;将所述目标资源对所述算法包的处理结果反馈给所述调度单元,所述处理结果为:处理完成或处理失败;
所述调度单元还用于:在接收到的处理结果为处理完成的情况下,继续根据所述有向无环图,确定新的当前待执行任务。
10.一种任务处理装置,其特征在于,所述装置包括:
获取模块,用于确定各任务之间的执行顺序,作为待处理顺序;在预先存储的有向无环图模板,选择与所述待处理顺序相匹配的有向无环图模板,所述有向无环图模板中包括多个任务之间的执行顺序;生成各任务对应的算法包,以及确定各任务对应的处理单元,以及确定各任务在其对应的处理单元中申请的资源;将所生成的算法包的标识、所确定的处理单元的标识以及所确定的资源的信息添加至所选择的有向无环图模板,得到有向无环图,所述有向无环图中包括多个任务之间的执行顺序、每个任务对应的处理单元的信息、每个任务在其对应的处理单元中申请的资源的信息、以及每个任务对应的算法包的信息;
确定模块,用于根据所述有向无环图,确定当前待执行任务;以及确定所述当前待执行任务对应的处理单元,作为目标处理单元;以及确定所述当前待执行任务在所述目标处理单元中申请的资源,作为目标资源;以及确定所述当前待执行任务对应的算法包的信息,作为目标算法包的信息;
处理模块,用于根据所述目标算法包的信息,获取所述当前待执行任务对应的算法包,作为目标算法包,并将所述目标算法包发送至所述目标处理单元,利用所述目标处理单元中的所述目标资源对所述目标算法包进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910307313.4A CN111831424B (zh) | 2019-04-17 | 2019-04-17 | 一种任务处理方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910307313.4A CN111831424B (zh) | 2019-04-17 | 2019-04-17 | 一种任务处理方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111831424A CN111831424A (zh) | 2020-10-27 |
CN111831424B true CN111831424B (zh) | 2023-09-05 |
Family
ID=72914687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910307313.4A Active CN111831424B (zh) | 2019-04-17 | 2019-04-17 | 一种任务处理方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111831424B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732979B (zh) * | 2020-12-29 | 2023-02-17 | 五八有限公司 | 信息写入方法、装置、电子设备和计算机可读介质 |
CN113377348A (zh) * | 2021-06-10 | 2021-09-10 | 平安科技(深圳)有限公司 | 应用于任务引擎的任务调整方法、相关装置和存储介质 |
CN114924772B (zh) * | 2022-07-15 | 2022-10-25 | 浙江大华技术股份有限公司 | 一种算法包的更新方法及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017133351A1 (zh) * | 2016-02-05 | 2017-08-10 | 华为技术有限公司 | 一种资源分配方法及资源管理器 |
CN107450972A (zh) * | 2017-07-04 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种调度方法、装置以及电子设备 |
CN108319499A (zh) * | 2018-02-07 | 2018-07-24 | 麒麟合盛网络技术股份有限公司 | 任务调度方法及装置 |
CN109523187A (zh) * | 2018-11-27 | 2019-03-26 | 北京字节跳动网络技术有限公司 | 任务调度方法、装置和设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510751B2 (en) * | 2010-03-18 | 2013-08-13 | International Business Machines Corporation | Optimizing workflow engines |
US10140151B2 (en) * | 2017-04-19 | 2018-11-27 | International Business Machines Corporation | Leveraging directed acyclic graph (DAG) information to group tasks for execution |
US10552161B2 (en) * | 2017-06-21 | 2020-02-04 | International Business Machines Corporation | Cluster graphical processing unit (GPU) resource sharing efficiency by directed acyclic graph (DAG) generation |
-
2019
- 2019-04-17 CN CN201910307313.4A patent/CN111831424B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017133351A1 (zh) * | 2016-02-05 | 2017-08-10 | 华为技术有限公司 | 一种资源分配方法及资源管理器 |
CN107450972A (zh) * | 2017-07-04 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种调度方法、装置以及电子设备 |
CN108319499A (zh) * | 2018-02-07 | 2018-07-24 | 麒麟合盛网络技术股份有限公司 | 任务调度方法及装置 |
CN109523187A (zh) * | 2018-11-27 | 2019-03-26 | 北京字节跳动网络技术有限公司 | 任务调度方法、装置和设备 |
Non-Patent Citations (1)
Title |
---|
一个面向预期目标的任务调度算法;王良明, 洪志;计算机工程与设计(09);54-57 * |
Also Published As
Publication number | Publication date |
---|---|
CN111831424A (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111831424B (zh) | 一种任务处理方法、系统及装置 | |
TW406242B (en) | System and method for maximizing usage of computer resources in scheduling of application tasks | |
US8171481B2 (en) | Method and system for scheduling jobs based on resource relationships | |
CN107958010B (zh) | 用于在线数据迁移的方法及系统 | |
CN109656782A (zh) | 可视化调度监控方法、装置及服务器 | |
CN106293893B (zh) | 作业调度方法、装置及分布式系统 | |
CN106406993A (zh) | 一种定时任务管理方法和系统 | |
CN107113341B (zh) | 用于数据划分的分布式关系数据库管理系统中事务的高吞吐量处理的系统 | |
US11704616B2 (en) | Systems and methods for distributed business processmanagement | |
JP5371095B2 (ja) | パッチ適用システム | |
WO2022105138A1 (zh) | 去中心化的任务调度方法、装置、设备及介质 | |
CN108845954A (zh) | 压力测试方法、系统及存储介质 | |
CN113220431B (zh) | 跨云的分布式数据任务调度方法、设备及存储介质 | |
US20100121904A1 (en) | Resource reservations in a multiprocessor computing environment | |
CN112162852A (zh) | 一种多架构cpu节点的管理方法、装置及相关组件 | |
CN110611707A (zh) | 一种任务调度的方法及装置 | |
CN107066339A (zh) | 分布式作业管理器及分布式作业管理方法 | |
CN110599148A (zh) | 集群数据处理方法、装置、计算机集群及可读存储介质 | |
CN111666138A (zh) | 定时任务处理方法、装置、系统、计算机设备和存储介质 | |
CN110766375A (zh) | 工作平台任务构建系统及构建方法 | |
CN106648871B (zh) | 一种资源管理方法及系统 | |
CN104735134B (zh) | 一种用于提供计算服务的方法和装置 | |
US11321120B2 (en) | Data backup method, electronic device and computer program product | |
CN111340613B (zh) | 作业处理方法、系统以及存储介质 | |
CN114020368A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |