SUB_PROCESS是一种特殊的任务类型,它可以在工作流内引用另一个已定义的工作流任务。这种任务类型适用于将复杂的任务分解为多个子任务,每个子任务可以独立定义和管理,从而提高任务的可维护性和可重用性。
背景信息
工作流中可通过在SUB_PROCESS节点中引用已有工作流的方式,实现工作流间的嵌套调用。被引用的工作流无需设置定时任务和依赖关系,其执行完全由引用它的工作流决定,具体来说:
开启可被引用的工作流是否运行:取决于是否有工作流引用该工作流。
开启可被引用的工作流实际运行时间:取决于引用这个工作流的工作流实际运行时间。
若为多层嵌套引用,调度系统会从最后一层引用(如左图第四层引用)开始执行。运行过程中若检测到当前工作流中存在SUB_PROCESS节点,则会同步触发该SUB_PROCESS节点引用的工作流执行(如左图所示,当Workflow-E执行时,由于Workflow-E存在SUB_PROCESS节点引用Workflow-D,所以Workflow-E执行时会同步触发Workflow-D执行)。
开启可被引用的工作流实际执行次数:取决于该工作流被引用的次数。
若每一层引用存在多个SUB_PROCESS时,被引用的工作流运行次数取决于被引用的次数。
根据您的业务需求,您可以选择构建一个简单直接的线性引用工作流,如左侧示意图所示。或者设计一个更为复杂、允许多个分支并行的工作流层级结构,如右侧示意图展示。每种结构都有其特点和适用场景,选择最适合您业务流程的方案进行实施:
左侧示意图:这个图展示了一个线性的工作流层级结构,每一层的工作流都依赖于前一层的工作流,并通过内部的SUB_PROCESS节点逐层引用。例如,工作流Workflow-E通过其内部的SUB_PROCESS节点引用Workflow-D,依此类推,直到工作流Workflow-B通过其内部的SUB_PROCESS节点引用Workflow-A。
右侧示意图:展示了一个复杂的工作流层级结构,每一层的工作流可以被多个工作流通过内部的SUB_PROCESS节点所引用。例如,工作流Workflow-A可被Workflow-B1、Workflow-B2两个工作流通过其内部的SUB_PROCESS节点引用。
前提条件
已有勾选参加数据开发(DataStudio)(新版)公测的工作空间,并已完成资源组的绑定,详情请参见创建工作空间。
注意事项
使用SUB_PROCESS节点实现多层嵌套时,可嵌套引用的层级数上限为5(包含Root根工作流)。
使用SUB_PROCESS节点实现多层嵌套时,总的工作流个数不能超过200个。
使用SUB_PROCESS实现的工作流引用关系为触发的关系,非上下游依赖关系,即只要检测到工作流中存在SUB_PROCESS节点,便会触发SUB_PROCESS节点引用的工作流执行。
存在引用关系而被触发运行的工作流,其代码中的调度参数赋值将根据触发其运行的工作流定时时间决定。
配置工作流
以使用SUB_PROCESS节点实现工作流Workflow2
引用工作流Workflow1
场景为例,为您介绍如何通过SUB_PROCESS节点引用已有工作流,具体操作步骤如下:
工作流1:开启可被引用
一个工作流若要支持被引用,需要移除已有的上下游节点依赖关系,并且设置可被引用的工作流不支持设置定时调度运行时间,请参考以下内容为工作流开启可被引用开关。建议您创建全新工作流体验该功能。
您可按照以下步骤创建可被引用的工作流Workflow1
,并为工作流Workflow1
开启可被引用开关。
新建项目目录。
进入DataWorks工作空间列表页,在顶部切换至目标地域,找到已创建的工作空间,单击操作列的 ,进入Data Studio。
在Data Studio页面左侧导航栏单击
按钮,进入数据开发页面。
在数据开发页面左侧目录树的项目目录区域。单击新建目录,创建新目录。
新建工作流
Workflow1
,详情请参见周期工作流。打开可被引用开关。
进入工作流
Workflow1
编辑页面,单击页面右侧的属性,在属性配置对话框中打开可被引用开关。开启被引用能力后,当前工作流可被其他工作流通过SUB_PROCESS节点引用,调度时间、调度依赖等属性将无需配置。
工作流2:引用工作流1
您可通过在工作流
下面创建 Workflow2
SUB_PROCESS
节点来引用工作流Workflow1
。
创建工作流
Workflow2
,详情请参见周期工作流。创建
SUB_PROCESS
节点。单击您所创建的工作流
Workflow2
,进入工作流编辑页面。将逻辑节点下方的SUB_PROCESS节点拖拽至画布中。配置引用工作流。
进入添加节点对话框,引用工作流您需选择已有,在选择已有下方的下拉框中选择需要被引用的工作流
Workflow1
,节点名称您可使用系统生成的名称,或者修改为您所自定义的名称,单击确认完成引用。如果您需要选择引用新建的工作流时,您可自定义新建的工作流名称,单击确认完成引用。
确认引用新建工作流后,您可将鼠标悬浮在SUB_PROCESS节点,单击上方的打开引用工作流,在弹出的提示框单击保存并打开,进入新建工作流的编辑页面。
新建的被引用工作流编辑页面右侧属性配置面板中的可被引用开关,默认处于开启状态。
保存查看引用详情。
进入工作流
Workflow2
编辑页面,单击上方的保存,在变更检查页面完成保存确认。工作流可被引用的开关开启后,同一个工作流可被多个工作流引用。您可在被引用工作流页面右侧的属性中查看被引用次数,也可点击查看详情,了解更多详情信息。
后续步骤
完成工作流之间的配置引用后,您可以将工作流任务发布至调度环境进行周期性调度,并通过补数据的方式观察整体工作流的运行情况。