工作流执行方法、装置、电子设备及存储介质制造方法及图纸

技术编号:34775751 阅读:15 留言:0更新日期:2022-08-31 19:47
本申请提供一种工作流执行方法、装置、电子设备及存储介质,该方法包括:获取工作流配置文件,所述工作流配置文件包括待执行工作任务以及执行顺序;解析所述工作流配置文件,以待执行工作任务为节点,依据待执行工作任务的执行顺序构建节点之间的边,得到工作流对应的有向图;依据所述有向图,按照拓扑顺序,依次执行各节点对应的待执行工作任务;其中,所述有向图中任一节点对应待执行工作任务的执行结果数据,依据节点之间的边,被传输至该节点的下一节点。该方法可以实现任务之间的数据通信,扩展工作流执行方案的适用场景范围。扩展工作流执行方案的适用场景范围。扩展工作流执行方案的适用场景范围。

【技术实现步骤摘要】
工作流执行方法、装置、电子设备及存储介质


[0001]本申请涉及数据处理
,尤其涉及一种工作流执行方法、装置、电子设备及存储介质。

技术介绍

[0002]在实际机器学习算法生产中,对开发者和使用者的要求都很高,开发者需要花费额外的时间精力在服务器运维、环境适配,集群部署、数据库等工作,此外,需求在一直变更,故在开发过程中需考虑可拓展性、一致性、模块化等,同时在生成环境中代码难以调试,开发效率低。对使用者而言,机器学习应用上手门槛较高,难以满足自己的定制需求,缺乏完善的解决方案。此时就会用到工作流,将业务流程按照一定的规则设计抽象出来,根据不同条件场景执行。
[0003]然而实践发现,现有的工作流引擎大多为独立的顺序任务设计,无法应对任务之间存在数据依赖的场景应用需求。

技术实现思路

[0004]有鉴于此,本申请提供一种工作流执行方法、装置、电子设备及存储介质,以扩展工作流执行方案的适用场景范围。
[0005]具体地,本申请是通过如下技术方案实现的:
[0006]根据本申请实施例的第一方面,提供一种工作流执行方法,包括:
[0007]获取工作流配置文件,所述工作流配置文件包括待执行工作任务以及执行顺序;
[0008]解析所述工作流配置文件,以待执行工作任务为节点,依据待执行工作任务的执行顺序构建节点之间的边,得到工作流对应的有向图;
[0009]依据所述有向图,按照拓扑顺序,依次执行各节点对应的待执行工作任务;其中,所述有向图中任一节点对应待执行工作任务的执行结果数据,依据节点之间的边,被传输至该节点的下一节点。
[0010]根据本申请实施例的第二方面,提供一种工作流执行装置,包括:
[0011]获取单元,用于获取工作流配置文件,所述工作流配置文件包括待执行工作任务以及执行顺序;
[0012]构图单元,用于解析所述工作流配置文件,以待执行工作任务为节点,依据待执行工作任务的执行顺序构建节点之间的边,得到工作流对应的有向图;
[0013]执行单元,用于依据所述有向图,按照拓扑顺序,依次执行各节点对应的待执行工作任务;其中,所述有向图中任一节点对应待执行工作任务的执行结果数据,依据节点之间的边,被传输至该节点的下一节点。
[0014]根据本申请实施例的第三方面,提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现第一方面提供的方法。
[0015]根据本申请实施例的第四方面,提供一种机器可读存储介质,所述机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现第一方面提供的方法。
[0016]本申请提供的技术方案至少可以带来以下有益效果:
[0017]通过获取工作流配置文件,并解析获取到的工作流配置文件,以待执行工作任务为节点,依据待执行工作任务的执行顺序构建节点之间的边,得到工作流对应的有向图,提高了工作任务的编排和执行效率,任务执行过程中,依据得到的有向图,按照拓扑顺序,依次执行各节点对应的待执行工作任务;其中,有向图中任一节点对应待执行工作任务的执行结果数据,依据节点之间的边,被传输至该节点的下一节点,实现了任务之间的数据通信,扩展了工作流执行方案的适用场景范围。
附图说明
[0018]图1是本申请示例性实施例示出的一种工作流执行方法的流程示意图;
[0019]图2是本申请示例性实施例示出的一种工作流引擎的模块示意图;
[0020]图3是本申请示例性实施例示出的一种条件节点的图构建和图运行示意图;
[0021]图4是本申请示例性实施例示出的一种简单的检测工作流示意图;
[0022]图5是本申请示例性实施例示出的一种全图及子图的配置示意图;
[0023]图6是本申请示例性实施例示出的一种工作流执行装置的结构示意图;
[0024]图7是本申请示例性实施例示出的一种电子设备的硬件结构示意图。
具体实施方式
[0025]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0026]在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
[0027]为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
[0028]请参见图1,为本申请实施例提供的一种工作流执行方法的流程示意图,如图1所示,该工作流执行方法可以包括以下步骤:
[0029]需要说明的是,本申请实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0030]步骤S100、获取工作流配置文件,工作流配置文件包括待执行工作任务以及执行顺序。
[0031]步骤S110、解析获取到的工作流配置文件,以待执行工作任务为节点,依据待执行
工作任务的执行顺序构建节点之间的边,得到工作流对应的有向图。
[0032]本申请实施例中,为了提高工作任务的编排和执行效率,可以对工作流的调度执行进行抽象,以待执行工作任务为节点,待执行工作任务之间的依赖关系为边,将工作流抽象为有向图。
[0033]例如,若待执行工作任务A和待执行工作任务B的执行顺序为A

B,则可以确定待执行工作任务B与待执行工作任务A之间存在依赖关系,在构建有向图时,可以在待执行工作任务A对应的节点(假设为节点1)与待执行工作任务B对应的节点(假设为节点2)之间构建一条边,该边由节点1指向节点2,即以节点1为入节点,以节点2为出节点。
[0034]步骤S120、依据有向图,按照拓扑顺序,依次执行各节点对应的待执行工作任务;其中,有向图中任一节点对应待执行工作任务的执行结果数据,依据节点之间的边,被传输至该节点的下一节点。
[0035]本申请实施例中,考虑到现有的工作流引擎大多为独立的顺序任务设计,节点间无法进行数据传输,无法应对任务之间存在数据依赖的场景应用需求。而在实际机器学习算法生产中,数据占据非常重要的地位,任务之间依赖数据通信,如人脸识别系统,人脸识别算法依赖上一步人脸检测得到的人脸数据,任务之间需要进行数据通信。
[0036]相应地,为了扩展工作流执行方案的适用场景范围,在按照有向图执行各节点对应的待执行工作任务时,对于任一节点对应的待执行工作任务的执行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种工作流执行方法,其特征在于,包括:获取工作流配置文件,所述工作流配置文件包括待执行工作任务以及执行顺序;解析所述工作流配置文件,以待执行工作任务为节点,依据待执行工作任务的执行顺序构建节点之间的边,得到工作流对应的有向图;依据所述有向图,按照拓扑顺序,依次执行各节点对应的待执行工作任务;其中,所述有向图中任一节点对应待执行工作任务的执行结果数据,依据节点之间的边,被传输至该节点的下一节点。2.根据权利要求1所述的方法,其特征在于,所述以待执行工作任务为节点,依据待执行工作任务的执行顺序构建节点之间的边,包括:对于任一待执行工作任务,若该待执行工作任务在不同条件下,分别指向指定前置待执行任务和指定后置待执行任务,则在该待执行工作任务对应的节点与该指定前置待执行任务对应的节点之间构建回溯边,并在该待执行工作任务对应的节点与该指定后置执行任务对应的节点之间构建前向边;其中,回溯边不参与有向图的拓扑排序;所述按照拓扑顺序,依次执行各节点对应的待执行工作任务,包括:对于存在回溯边的节点,依据该节点对应的待执行任务的条件获取返回值;在返回值为第一值的情况下,将该节点对应的待执行工作任务的执行结果数据传输至前向边指向的后置节点,并跳转至该后置节点;在返回值为非第一值的情况下,跳转至回溯边指向的前置节点。3.根据权利要求2所述的方法,其特征在于,所述按照拓扑顺序,依次执行各节点对应的待执行工作任务,还包括:对于任一节点,若该节点对应的待执行工作任务设置有终止条件,则在执行完该待执行工作任务,且终止条件满足的情况下,向以该节点为入节点的回溯边的出节点返回所述第一值;在执行完该待执行工作条件,且终止条件不满足的情况下,向以该节点为入节点的回溯边的出节点返回非第一值。4.根据权利要求1所述的方法,其特征在于,所述工作流配置文件还包括子图配置文件路径信息,以及子图节点的输入信息和子图节点的输出信息;所述方法还包括:构建子图节点,并依据所述子图节点的输入信息和子图节点的输出信息,确定子图节点在工作流对应的有向图中的相邻前置节点和相邻后置节点;所述子图节点记录了子图配置文件路径信息;所述按照拓扑顺序,依次执行各待执行工作任务,包括:对于子图节点,依据该子图节点记录的子图配置文件路径信息,获取子图配置文件;将该子图节点的相邻前置节点对应的待执行任务的执行结果数据作为子图的输入,执行子图,将子图的执行结果数据传输至该子图节点的相邻后置节点,并跳转至该子图节点的相邻后置节点。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:在工作流执行异常的情况下,保存已得到的执行结果数据;在检测到针对该工作流的执行指令的情况下,依据所保存的执行结果数据,执行该工
作流。6.一种工作流执行装置,其特征在于,包括:获取单元,用于获取工作流配置文件,所述工作流配置文件包括待执行工作任务以及执行顺序;构图单元,用于解析所述工作流配置文件,以待执行工作任务为节点,依据待执行工作任务的执行顺序构建节点之间的边,得到工作流对应的有向图;执行单元,...

【专利技术属性】
技术研发人员:李鹏飞
申请(专利权)人:上海高德威智能交通系统有限公司
类型:发明
国别省市:

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

1