CN115016909A - 基于参数依赖推断执行流程的任务流并发调度方法及系统 - Google Patents

基于参数依赖推断执行流程的任务流并发调度方法及系统 Download PDF

Info

Publication number
CN115016909A
CN115016909A CN202210591523.2A CN202210591523A CN115016909A CN 115016909 A CN115016909 A CN 115016909A CN 202210591523 A CN202210591523 A CN 202210591523A CN 115016909 A CN115016909 A CN 115016909A
Authority
CN
China
Prior art keywords
task
flow
task flow
nodes
execution
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
Application number
CN202210591523.2A
Other languages
English (en)
Inventor
官元峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Si Tech Information Technology Co Ltd
Original Assignee
Beijing Si Tech Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Si Tech Information Technology Co Ltd filed Critical Beijing Si Tech Information Technology Co Ltd
Priority to CN202210591523.2A priority Critical patent/CN115016909A/zh
Publication of CN115016909A publication Critical patent/CN115016909A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于参数依赖推断执行流程的任务流并发调度方法及系统,方法包括:预定义任务节点模块的输入输出参数;通过图形拖拽方式,将每个任务节点与其他任务节点连线,以构建输入输出参数具有依赖关系的任务流;按照预设的转换原则和转换程序,将任务流转换为预设格式的任务流文档;循环遍历执行任务流环节的全部任务节点;逐个启动任务进程,并检查任务进程的执行状态;若任一任务节点执行失败,则结束当前任务流环节。通过本发明的技术方案,简化了配置过程,提高流任务流定义的可移植性,且并发任务的数量能够适应执行容器的变化,能够提前对工作流结构的完整性进行检查,减少运行期间出错的可能性。

Description

基于参数依赖推断执行流程的任务流并发调度方法及系统
技术领域
本发明涉及模型开发技术领域,尤其涉及一种基于参数依赖推断执行流程的任务流并发调度方法以及一种基于参数依赖推断执行流程的任务流并发调度系统。
背景技术
目前,在AI-PaaS模型算法平台中,建模流程自动化模块向用户提供了以GUI方式构建任务流的功能。原有任务流构建的方式,是通过在执行过程间连接带箭头的连线,连线表明执行顺序,箭头指向的过程后执行,另一端的过程先执行。通过这样串行连接的方式将多个过程的执行顺序定义出来。
每一个执行过程,是一个启动进程的命令行,以及附加的参数。并指定其要运行的目标容器地址。在启动任务流的时候,将过程的命令行提交到对应的目标容器地址上,由目标容器中的代理服务按照命令行及参数启动进程,并跟踪其运行状态。
任务流定义中支持并发的模式,需要显式的拖入并发模块(Split),将多个过程连接到该并发模块上,然后再加入合并模块(Join)用于等待并发任务的全部执行完毕,然后连接后续的动作。
上述的并发模式,是在配置的时候就固定了能够进行的并发数量和模式,并无法根据实际运行时的资源情况对并发的执行上进行调整。
另外,现有任务流调度中,没有明确的参数和数据传递定义,这导致执行过程之间,如果有数据传递,需要以内容耦合的方式来做,严重影响了模块的设计通用性和可移植性。
原有的任务流定义中,设定了每个过程节点的执行目标地址,这也限制了任务流定义的可移植性。
发明内容
针对上述问题,本发明提供了一种基于参数依赖推断执行流程的任务流并发调度方法及系统,通过预定义任务节点模块,采用可视化方式构建任务流,只需关注参数间的依赖关系而无需关注执行顺序,简化了配置过程,提高流任务流定义的可移植性,且并发任务的数量能够适应执行容器的变化,能够提前对工作流结构的完整性进行检查,减少运行期间出错的可能性。
为实现上述目的,本发明提供了一种基于参数依赖推断执行流程的任务流并发调度方法,包括:
预定义任务节点模块的输入输出参数;
通过基于可视化界面的图形拖拽方式,将每个任务节点与其他任务节点连线,以构建输入输出参数具有依赖关系的任务流;
按照预设的转换原则和转换程序,将所述任务流转换为预设格式的任务流文档;
基于所述任务流文档获取任务流配置,并循环遍历执行任务流环节的全部任务节点;
获取任务节点的数据、填充参数、连接目标容器,逐个启动任务进程,并检查任务进程的执行状态;
若任一任务节点执行失败,则结束当前任务流环节,若遍历整个任务流环节结束,则保存该任务流环节的状态。
在上述技术方案中,优选地,所述预定义任务节点模块的输入输出参数的过程具体包括:
以python代码方式定义所述任务节点模块,定义内容包括所述任务节点模块的描述性信息、所述任务节点模块的运行依赖信息以及所述任务节点模块的输入输出参数;
所述输入输出参数分为入参和出参,所述输入输出参数包括入参和出参的名称、类型和描述,入参和出参的类型包括数值型数据和文件型数据。
在上述技术方案中,优选地,将所述任务流转换为预设格式的任务流文档的转换原则包括:
被依赖出参的任务节点,先于入参依赖其出参的任务节点执行;
任务节点的出参包括多个被依赖节点且多个被依赖节点之间无相互依赖关系,则该任务节点至多个被依赖节点之间可以并发处理;
若任务流环节的并发节点数量多于执行容器数量,则将所述并发任务流环节分拆为多个环节,一个执行容器不能同时执行多个任务节点。
在上述技术方案中,优选地,将所述任务流转换为预设格式的任务流文档的转换程序包括:
将每个任务节点中的入参对应的另一任务节点参数附加出参属性,以正向推导执行顺序;
判断任务节点之间传递的数据文件为临时文件或持久文件,并为持久文件提供文件地址或服务器地址;
查找全部入参均提供数值型数据的任务节点作为执行起点;
按照出参的执行顺序路径确定各个任务节点的执行顺序;
根据执行容器数量,检查并分拆并发任务流环节的节点数量,并为每个任务节点分配执行容器。
在上述技术方案中,优选地,基于所述任务流文档获取任务流配置,并循环遍历执行任务流环节的全部任务节点的具体过程包括:
读取所述任务流文档以获取任务流配置,根据所述任务流配置遍历任务流环节;
遍历执行当前任务流环节的全部任务节点后,循环进入下一任务流环节,且每次循环之间加入延时;
循环遍历完成所有任务流环节后,保存任务流环节的状态并退出任务。
本发明还提出一种基于参数依赖推断执行流程的任务流并发调度系统,应用如上述技术方案中任一项公开的基于参数依赖推断执行流程的任务流并发调度方法,包括:
参数定义模块,用于预定义任务节点模块的输入输出参数;
任务连接模块,用于通过基于可视化界面的图形拖拽方式,将每个任务节点与其他任务节点连线,以构建输入输出参数具有依赖关系的任务流;
任务转换模块,用于按照预设的转换原则和转换程序,将所述任务流转换为预设格式的任务流文档;
遍历执行模块,用于基于所述任务流文档获取任务流配置,并循环遍历执行任务流环节的全部任务节点;
进程启动模块,用于获取任务节点的数据、填充参数、连接目标容器,逐个启动任务进程,并检查任务进程的执行状态;
任务调度模块,用于在任一任务节点执行失败时,结束当前任务流环节,在遍历整个任务流环节结束时,保存该任务流环节的状态。
在上述技术方案中,优选地,所述参数定义模块具体用于:
以python代码方式定义所述任务节点模块,定义内容包括所述任务节点模块的描述性信息、所述任务节点模块的运行依赖信息以及所述任务节点模块的输入输出参数;
所述输入输出参数分为入参和出参,所述输入输出参数包括入参和出参的名称、类型和描述,入参和出参的类型包括数值型数据和文件型数据。
在上述技术方案中,优选地,所述任务转换模块的转换原则包括:
被依赖出参的任务节点,先于入参依赖其出参的任务节点执行;
任务节点的出参包括多个被依赖节点且多个被依赖节点之间无相互依赖关系,则该任务节点至多个被依赖节点之间可以并发处理;
若任务流环节的并发节点数量多于执行容器数量,则将所述并发任务流环节分拆为多个环节,一个执行容器不能同时执行多个任务节点。
在上述技术方案中,优选地,所述任务转换模块的转换程序包括:
将每个任务节点中的入参对应的另一任务节点参数附加出参属性,以正向推导执行顺序;
判断任务节点之间传递的数据文件为临时文件或持久文件,并为持久文件提供文件地址或服务器地址;
查找全部入参均提供数值型数据的任务节点作为执行起点;
按照出参的执行顺序路径确定各个任务节点的执行顺序;
根据执行容器数量,检查并分拆并发任务流环节的节点数量,并为每个任务节点分配执行容器。
在上述技术方案中,优选地,所述遍历执行模块具体用于:
读取所述任务流文档以获取任务流配置,根据所述任务流配置遍历任务流环节;
遍历执行当前任务流环节的全部任务节点后,循环进入下一任务流环节,且每次循环之间加入延时;
循环遍历完成所有任务流环节后,保存任务流环节的状态并退出任务。
与现有技术相比,本发明的有益效果为:通过预定义任务节点模块,采用可视化方式构建任务流,只需关注参数间的依赖关系而无需关注执行顺序,简化了配置过程,提高流任务流定义的可移植性,且并发任务的数量能够适应执行容器的变化,能够提前对工作流结构的完整性进行检查,减少运行期间出错的可能性。
附图说明
图1为本发明一种实施例公开的基于参数依赖推断执行流程的任务流并发调度方法的流程示意图;
图2为本发明一种实施例公开的任务流调度运行的流程示意图;
图3为本发明一种实施例公开的基于参数依赖推断执行流程的任务流并发调度系统的模块示意图。
图中,各组件与附图标记之间的对应关系为:
11.参数定义模块,12.任务连接模块,13.任务转换模块,14.遍历执行模块,15.进程启动模块,16.任务调度模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明做进一步的详细描述:
如图1和图2所示,根据本发明提供的一种基于参数依赖推断执行流程的任务流并发调度方法,包括:
预定义任务节点模块的输入输出参数;
通过基于可视化界面的图形拖拽方式,将每个任务节点与其他任务节点连线,以构建输入输出参数具有依赖关系的任务流;
按照预设的转换原则和转换程序,将任务流转换为预设格式的任务流文档;
基于任务流文档获取任务流配置,并循环遍历执行任务流环节的全部任务节点;
获取任务节点的数据、填充参数、连接目标容器,逐个启动任务进程,并检查任务进程的执行状态;
若任一任务节点执行失败,则结束当前任务流环节,若遍历整个任务流环节结束,则保存该任务流环节的状态。
在该实施方式中,通过预定义任务节点模块,采用可视化方式构建任务流,只需关注参数间的依赖关系而无需关注执行顺序,简化了配置过程,提高流任务流定义的可移植性,且并发任务的数量能够适应执行容器的变化,能够提前对工作流结构的完整性进行检查,减少运行期间出错的可能性。
具体地,任务流为一系列有顺序的任务集合,各任务间存在相关性,全部任务成功完成后,实现一个确定的目标。任务流由多个任务环节单向串行连接而成。任务环节由一个或多个任务节点完成,同一环节下的多个任务节点可并发执行也可顺序执行。任务节点为可执行的任务单元,具体表现为一个用于启动进程的命令和参数,以及对应的目标执行容器。执行容器为用于实际启动任务进程的容器环境,其中运行一个执行代理以与调度程序进行通讯。对于同一个任务流,可以提供一个或多个执行容器来运行。调度程序为用于解析任务流描述信息并将其付诸执行的程序进程。
在该调度方法中,包括任务模块定义、任务流描述文档定义和调度实现方法三个部分。
在任务模块定义过程中,以python代码方式定义任务节点模块,定义内容包括任务节点模块的描述性信息、任务节点模块的运行依赖信息以及任务节点模块的输入输出参数;
具体的:定义描述中包括了模块的归类/功能描述/输入参数及其类型/输出参数及其类型,其定义描述以python代码的方式编写,存放于模块代码的头部,样例如下:
Figure BDA0003665373920000061
Figure BDA0003665373920000071
其中,描述性信息包括version/desc/catalog,在功能上不产生影响,dependency是定义本任务模块运行所依赖的信息,包括但不限于python的扩展模块及其版本。输入输出参数分为入参(inparams)和出参(outparams),输入输出参数包括入参和出参的名称name、类型type和描述desc,入参和出参的类型包括数值型数据val和文件型数据file,前者为传递的参数值,后者为传递的文件。
任务流描述定义部分分为两阶段,第一阶段为人为构建,手工编写,或通过web可视化界面手工构建。该阶段的任务流描述,主要结构为包含的任务节点模块信息,以及参数赋值/参数依赖关系,文档结构定义如下所示:
Figure BDA0003665373920000072
Figure BDA0003665373920000081
其中,nodes节点下的元组中每个元素为一个任务节点,描述任务节点间关系的是入参中的from定义,它用于描述其值或数据的来源,另一个节点的某个输出参数。
以下是一个以json格式表达的定义样例:
Figure BDA0003665373920000082
Figure BDA0003665373920000091
第二阶段的任务流描述,是由调度程序将第一部分转换而成,主要的目的是确定各任务节点的执行顺序,以及为任务节点分配执行容器。转换过程分为两步,第一步先检查输入文档的结构,确定参数的完备性以及依赖关系不会产生闭环;第二步才执行转换过程,将参数依赖描述转换为分配了执行容器的有顺序的执行图过程。该部分文档,以json格式表达的结构定义如下所示:
Figure BDA0003665373920000092
Figure BDA0003665373920000101
在上述实施方式中,优选地,将任务流转换为预设格式的任务流文档的转换原则包括:
被依赖出参的任务节点,先于入参依赖其出参的任务节点执行;
任务节点的出参包括多个被依赖节点且多个被依赖节点之间无相互依赖关系,则该任务节点至多个被依赖节点之间可以并发处理;
若任务流环节的并发节点数量多于执行容器数量,则将并发任务流环节分拆为多个环节,一个执行容器不能同时执行多个任务节点。
在上述实施方式中,优选地,将任务流转换为预设格式的任务流文档的转换程序包括:
将每个任务节点中的入参中有from定义的参数,找到其对应的另一任务节点参数,在该参数上附加出参to属性,以正向推导执行顺序;
传递数据文件的类别判定:判断任务节点之间传递的数据文件为临时文件或持久文件,并为持久文件提供文件地址或服务器地址;如果是从输出文件到另一节点的输入,则属于临时文件,如果文件输入无from,则为持久文件要求提供文件地址,如果输出无to,则持久文件会上传到文件服务器。
查找全部入参均提供数值型数据val的任务节点(可为多个)作为执行起点;
按照出参的执行顺序to路径,先后推,确定各个任务节点的执行顺序;
根据执行容器数量,检查并分拆并发任务流环节的节点数量,并为每个任务节点分配执行容器。
基于上述转换原则和转换程序得到的任务流文档,任务流的执行过程具体包括:
读取任务流文档以获取任务流配置,根据任务流配置遍历任务流环节,如果已经遍历结束,则任务流结束;
遍历执行当前任务流环节的全部任务节点;
获取任务节点数据,填充参数,连接目标容器的执行代理,逐个启动任务进程;
循环进入下一任务流环节,且每次循环之间加入延时;
逐个检查任务进程的执行状态,全部完成则进入下一环节;如果有任一任务节点失败,则整个工作流失败,保存状态后结束本任务流的调度;
循环遍历完成所有任务流环节后,保存任务流环节的状态并退出任务。
根据上述实施方式公开的基于参数依赖推断执行流程的任务流并发调度方法,具体应用过程中,实施步骤包括:
用户通过web界面通过图形拖拽的方式构建任务流,每个节点的入参,如果是val类型,则要求用户提供值,file类型的则填文件地址(在文件服务器上的路径),以及通过拖拽出参到其它节点的入参建立连线,来标明参数间的依赖关系;
界面配置完任务流后,提供执行任务列表,点击提交,开始生成第一阶段json文档给后端的调度进程;
调度进程将收到的第一阶段文档转换为第二阶段文档,然后启动独立线程开始执行该任务流的调度;
调度线程在执行过程中,向web提供当前的执行位置状态数据,以便可以通过界面了解任务的执行进度,另外提供日志查看功能。
如图3所示,本发明还提出一种基于参数依赖推断执行流程的任务流并发调度系统,应用如上述实施方式中任一项公开的基于参数依赖推断执行流程的任务流并发调度方法,包括:
参数定义模块11,用于预定义任务节点模块的输入输出参数;
任务连接模块12,用于通过基于可视化界面的图形拖拽方式,将每个任务节点与其他任务节点连线,以构建输入输出参数具有依赖关系的任务流;
任务转换模块13,用于按照预设的转换原则和转换程序,将任务流转换为预设格式的任务流文档;
遍历执行模块14,用于基于任务流文档获取任务流配置,并循环遍历执行任务流环节的全部任务节点;
进程启动模块15,用于获取任务节点的数据、填充参数、连接目标容器,逐个启动任务进程,并检查任务进程的执行状态;
任务调度模块16,用于在任一任务节点执行失败时,结束当前任务流环节,在遍历整个任务流环节结束时,保存该任务流环节的状态。
在该实施方式中,通过预定义任务节点模块,采用可视化方式构建任务流,只需关注参数间的依赖关系而无需关注执行顺序,简化了配置过程,提高流任务流定义的可移植性,且并发任务的数量能够适应执行容器的变化,能够提前对工作流结构的完整性进行检查,减少运行期间出错的可能性。
在上述实施方式中,优选地,参数定义模块11具体用于:
以python代码方式定义任务节点模块,定义内容包括任务节点模块的描述性信息、任务节点模块的运行依赖信息以及任务节点模块的输入输出参数;
输入输出参数分为入参和出参,输入输出参数包括入参和出参的名称、类型和描述,入参和出参的类型包括数值型数据和文件型数据。
在上述实施方式中,优选地,任务转换模块13的转换原则包括:
被依赖出参的任务节点,先于入参依赖其出参的任务节点执行;
任务节点的出参包括多个被依赖节点且多个被依赖节点之间无相互依赖关系,则该任务节点至多个被依赖节点之间可以并发处理;
若任务流环节的并发节点数量多于执行容器数量,则将并发任务流环节分拆为多个环节,一个执行容器不能同时执行多个任务节点。
在上述实施方式中,优选地,任务转换模块13的转换程序包括:
将每个任务节点中的入参对应的另一任务节点参数附加出参属性,以正向推导执行顺序;
判断任务节点之间传递的数据文件为临时文件或持久文件,并为持久文件提供文件地址或服务器地址;
查找全部入参均提供数值型数据的任务节点作为执行起点;
按照出参的执行顺序路径确定各个任务节点的执行顺序;
根据执行容器数量,检查并分拆并发任务流环节的节点数量,并为每个任务节点分配执行容器。
在上述实施方式中,优选地,遍历执行模块14具体用于:
读取任务流文档以获取任务流配置,根据任务流配置遍历任务流环节;
遍历执行当前任务流环节的全部任务节点后,循环进入下一任务流环节,且每次循环之间加入延时;
循环遍历完成所有任务流环节后,保存任务流环节的状态并退出任务。
根据上述实施方式公开的基于参数依赖推断执行流程的任务流并发调度系统,其中各模块所要实现的功能按照上述实施方式中公开的基于参数依赖推断执行流程的任务流并发调度方法的各步骤进行,具体流程参照上述实施方式,在此不再赘述。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于参数依赖推断执行流程的任务流并发调度方法,其特征在于,包括:
预定义任务节点模块的输入输出参数;
通过基于可视化界面的图形拖拽方式,将每个任务节点与其他任务节点连线,以构建输入输出参数具有依赖关系的任务流;
按照预设的转换原则和转换程序,将所述任务流转换为预设格式的任务流文档;
基于所述任务流文档获取任务流配置,并循环遍历执行任务流环节的全部任务节点;
获取任务节点的数据、填充参数、连接目标容器,逐个启动任务进程,并检查任务进程的执行状态;
若任一任务节点执行失败,则结束当前任务流环节,若遍历整个任务流环节结束,则保存该任务流环节的状态。
2.根据权利要求1所述的基于参数依赖推断执行流程的任务流并发调度方法,其特征在于,所述预定义任务节点模块的输入输出参数的过程具体包括:
以python代码方式定义所述任务节点模块,定义内容包括所述任务节点模块的描述性信息、所述任务节点模块的运行依赖信息以及所述任务节点模块的输入输出参数;
所述输入输出参数分为入参和出参,所述输入输出参数包括入参和出参的名称、类型和描述,入参和出参的类型包括数值型数据和文件型数据。
3.根据权利要求1所述的基于参数依赖推断执行流程的任务流并发调度方法,其特征在于,将所述任务流转换为预设格式的任务流文档的转换原则包括:
被依赖出参的任务节点,先于入参依赖其出参的任务节点执行;
任务节点的出参包括多个被依赖节点且多个被依赖节点之间无相互依赖关系,则该任务节点至多个被依赖节点之间可以并发处理;
若任务流环节的并发节点数量多于执行容器数量,则将所述并发任务流环节分拆为多个环节,一个执行容器不能同时执行多个任务节点。
4.根据权利要求3所述的基于参数依赖推断执行流程的任务流并发调度方法,其特征在于,将所述任务流转换为预设格式的任务流文档的转换程序包括:
将每个任务节点中的入参对应的另一任务节点参数附加出参属性,以正向推导执行顺序;
判断任务节点之间传递的数据文件为临时文件或持久文件,并为持久文件提供文件地址或服务器地址;
查找全部入参均提供数值型数据的任务节点作为执行起点;
按照出参的执行顺序路径确定各个任务节点的执行顺序;
根据执行容器数量,检查并分拆并发任务流环节的节点数量,并为每个任务节点分配执行容器。
5.根据权利要求3所述的基于参数依赖推断执行流程的任务流并发调度方法,其特征在于,基于所述任务流文档获取任务流配置,并循环遍历执行任务流环节的全部任务节点的具体过程包括:
读取所述任务流文档以获取任务流配置,根据所述任务流配置遍历任务流环节;
遍历执行当前任务流环节的全部任务节点后,循环进入下一任务流环节,且每次循环之间加入延时;
循环遍历完成所有任务流环节后,保存任务流环节的状态并退出任务。
6.一种基于参数依赖推断执行流程的任务流并发调度系统,其特征在于,应用如权利要求1至5中任一项所述的基于参数依赖推断执行流程的任务流并发调度方法,包括:
参数定义模块,用于预定义任务节点模块的输入输出参数;
任务连接模块,用于通过基于可视化界面的图形拖拽方式,将每个任务节点与其他任务节点连线,以构建输入输出参数具有依赖关系的任务流;
任务转换模块,用于按照预设的转换原则和转换程序,将所述任务流转换为预设格式的任务流文档;
遍历执行模块,用于基于所述任务流文档获取任务流配置,并循环遍历执行任务流环节的全部任务节点;
进程启动模块,用于获取任务节点的数据、填充参数、连接目标容器,逐个启动任务进程,并检查任务进程的执行状态;
任务调度模块,用于在任一任务节点执行失败时,结束当前任务流环节,在遍历整个任务流环节结束时,保存该任务流环节的状态。
7.根据权利要求6所述的基于参数依赖推断执行流程的任务流并发调度系统,其特征在于,所述参数定义模块具体用于:
以python代码方式定义所述任务节点模块,定义内容包括所述任务节点模块的描述性信息、所述任务节点模块的运行依赖信息以及所述任务节点模块的输入输出参数;
所述输入输出参数分为入参和出参,所述输入输出参数包括入参和出参的名称、类型和描述,入参和出参的类型包括数值型数据和文件型数据。
8.根据权利要求6所述的基于参数依赖推断执行流程的任务流并发调度系统,其特征在于,所述任务转换模块的转换原则包括:
被依赖出参的任务节点,先于入参依赖其出参的任务节点执行;
任务节点的出参包括多个被依赖节点且多个被依赖节点之间无相互依赖关系,则该任务节点至多个被依赖节点之间可以并发处理;
若任务流环节的并发节点数量多于执行容器数量,则将所述并发任务流环节分拆为多个环节,一个执行容器不能同时执行多个任务节点。
9.根据权利要求6所述的基于参数依赖推断执行流程的任务流并发调度系统,其特征在于,所述任务转换模块的转换程序包括:
将每个任务节点中的入参对应的另一任务节点参数附加出参属性,以正向推导执行顺序;
判断任务节点之间传递的数据文件为临时文件或持久文件,并为持久文件提供文件地址或服务器地址;
查找全部入参均提供数值型数据的任务节点作为执行起点;
按照出参的执行顺序路径确定各个任务节点的执行顺序;
根据执行容器数量,检查并分拆并发任务流环节的节点数量,并为每个任务节点分配执行容器。
10.根据权利要求8所述的基于参数依赖推断执行流程的任务流并发调度系统,其特征在于,所述遍历执行模块具体用于:
读取所述任务流文档以获取任务流配置,根据所述任务流配置遍历任务流环节;
遍历执行当前任务流环节的全部任务节点后,循环进入下一任务流环节,且每次循环之间加入延时;
循环遍历完成所有任务流环节后,保存任务流环节的状态并退出任务。
CN202210591523.2A 2022-05-27 2022-05-27 基于参数依赖推断执行流程的任务流并发调度方法及系统 Pending CN115016909A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210591523.2A CN115016909A (zh) 2022-05-27 2022-05-27 基于参数依赖推断执行流程的任务流并发调度方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210591523.2A CN115016909A (zh) 2022-05-27 2022-05-27 基于参数依赖推断执行流程的任务流并发调度方法及系统

Publications (1)

Publication Number Publication Date
CN115016909A true CN115016909A (zh) 2022-09-06

Family

ID=83072006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210591523.2A Pending CN115016909A (zh) 2022-05-27 2022-05-27 基于参数依赖推断执行流程的任务流并发调度方法及系统

Country Status (1)

Country Link
CN (1) CN115016909A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116382877A (zh) * 2023-05-25 2023-07-04 之江实验室 一种任务的执行方法、装置、存储介质及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116382877A (zh) * 2023-05-25 2023-07-04 之江实验室 一种任务的执行方法、装置、存储介质及电子设备
CN116382877B (zh) * 2023-05-25 2023-09-05 之江实验室 一种任务的执行方法、装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
CN108829584B (zh) 业务逻辑接口mock测试方法及系统
Souri et al. Behavioral modeling and formal verification of a resource discovery approach in Grid computing
CN109743346B (zh) 会话流程配置方法、装置及计算机可读存储介质
US10956417B2 (en) Dynamic operation scheduling for distributed data processing
CN110362315B (zh) 基于dag的软件系统调度方法及装置
CN110276074B (zh) 自然语言处理的分布式训练方法、装置、设备及存储介质
US20100121668A1 (en) Automated compliance checking for process instance migration
CN111078551B (zh) 一种全链路测试方法、装置、系统及计算机可读存储介质
CN113079198B (zh) 一种云平台接口协议转换的方法及装置
US20130014082A1 (en) Method of configuring business logic supporting multi-tenancy
CN115016909A (zh) 基于参数依赖推断执行流程的任务流并发调度方法及系统
CN113032283B (zh) 一种密文运算调试方法、计算引擎和密文运算系统
CN116028651B (zh) 一种支持本体和数据增量更新的知识图谱构建系统及方法
CN109343891A (zh) 数据处理的系统、方法及装置
CN110209565A (zh) 一种元数据模型调试方法及其装置
WO2022253165A1 (zh) 调度方法、系统、服务器和计算机可读存储介质
CN110119283A (zh) 一种应用更新处理方法、装置及系统、应用更新系统
CN115827234A (zh) 面向多模型训练任务的算子调度方法与装置
CN109684351A (zh) 一种执行计划查看方法、装置、服务器及存储介质
WO2021051920A1 (zh) 模型优化方法、装置、存储介质及设备
CN113806222B (zh) 接口测试脚本生成方法、装置、设备及存储介质
CN111160403A (zh) 一种api接口复用发现的方法及装置
CN110321111A (zh) 系统流程控制方法、装置、设备及计算机存储介质
CN117472553B (zh) 一种工作流处理方法、装置、处理设备及可读存储介质
CN112162737B (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