工作流调度通用开发流程

最近更新时间:2026-03-03 17:35:11

我的收藏

使用场景

工作流调度即调度配置统一在工作流粒度配置,工作流下的任务直接按照工作流调度运行。

使用限制

一个项目仅支持配置一种调度模式,工作流调度或任务调度。项目一旦配置则不支持修改调度模式。
工作流调度模式项目下不支持跨工作流依赖,支持嵌套工作流能力。即可以在一个工作流中嵌套另一个工作流,被嵌套工作流将跟随外部工作流的调度配置运行,被嵌套工作流将跟随外部工作流的调度配置运行。
工作流调度和任务调度项目下的任务不支持跨项目依赖。
工作流调度项目仅支持以下任务类型:离线集成、Python、Shell、分支、Notebook、For-Each、DLC SQL、DLC Spark、DLC PySpark、DLC Spark Streaming。
工作流调度项目下不支持运维大屏等功能。
工作流调度项目暂不支持标准模式、跨项目克隆和导入导出功能。

工作流调度配置

在创建项目时,可选择调度模式。任务调度即调度在任务粒度配置,工作流调度即调度在工作流粒度配置。任务调度项目下的任务可以相互依赖,不能和工作流调度项目下任务相互依赖。工作流调度项目下工作流可互相嵌套。一旦配置则无法修改,请谨慎选择。


工作流调度开发

新建工作流

工作流编排——>编排空间——>新建工作流

配置工作流名称,选择文件夹


工作流配置

通用配置
打开右侧抽屉通用配置,完成工作流名称、工作流负责人、描述、工作流参数、Spark参数等基础信息的配置。

调度配置
打开右侧抽屉调度配置。若未配置情况下则默认提交后不周期运行。您可在运维中心手动触发运行(类似任务调度模式下手动工作流的能力)。

若您需要工作流周期运行,则可在调度配置中添加调度。
调度状态:启动/暂停,若您需要工作流周期运行,则可配置为启动,若不需要工作流周期运行,且想保留调度配置内容,则可配置为暂停。
触发方式:本期仅支持定时触发。
生效时间:即工作流运行的时间范围。
配置方式:常规和cron表达式方式。
常规模式下支持天、周、月、年、小时、分钟周期类型的调度配置。
cron表达式支持配置表达式或手动输入表达式。
天任务:支持单时间点和多时间点两种配置方式。单时间点即每天固定一个时间点运行;多时间点即选择小时和分钟,每天对应小时和分钟运行。例如小时选择2点、3点,分钟选择5分钟和35分钟,则会在每天2:05、2:35、3:05、3:35运行。
小时任务:支持指定间隔和指定时间两种配置方式。指定间隔即配置在每天的一个时间区间内(结束时间仅支持选择几点59分),间隔多少小时运行。指定时间即选择对应小时和分钟。
分钟任务:支持选择开始时间和结束时间,还有时间间隔。从开始时间起,计算到下个小时整点,则不会在按间隔继续执行。后续每小时运行的分钟时间点与之前相同,直到结束时间。例如每30分钟执行一次,时间间隔为05:29到23:59。则会从05:29开始,每小时都是29和59运行。具体运行时间为05:29、05:59、06:29、06:59,以此类推。
周任务:支持选择每周几几点运行。运行时间点也支持单时间点和多时间点,配置方式同天任务。
月任务:支持选择每月几号几点运行。运行时间点也支持单时间点和多时间点,配置方式同天任务。
年任务:支持选择每年几月几号几点运行。运行时间点也支持单时间点和多时间点,配置方式同天任务。
调度预览:完成调度配置后,可查看近5次调度时间,帮助您确定调度配置是否符合预期。
已配置的调度也可进行删除,即不周期调度,可手动触发调度。


工作流的运行、高级运行、暂停运行等功能与任务调度模式相同。

新建任务

点击工作流画布-新建任务中的任务名称,即可新建对应类型的任务。

新建任务
配置任务名称、任务类型、所属工作流目录等基本信息,完成任务创建。
工作流调度当前支持的任务类型:离线集成、Python、Shell、分支、Notebook、For-Each、DLC SQL、DLC Spark、DLC PySpark、DLC Spark Streaming。


任务配置

任务属性
完成任务名称、任务负责人、描述、调度参数等基础信息配置。

调度设置
在任务粒度,不再提供调度时间配置的能力,任务统一按工作流配置调度周期运行。
任务调度设置包含上游任务配置(仅支持选择当前工作流下的其他任务,即不支持跨工作流依赖)、产出登记、参数传递、高级设置功能。
运行条件配置:若当前任务配置了上游,则配置运行条件可生效。运行条件表示上游任务处于什么状态时当前任务可正常运行,否则将跳过运行或为上游失败状态。运行条件支持如下选项,默认情况下选择全部成功,即直接上游全部成功才能运行。
运行条件
条件说明
上游是否必须全部为终态
上游状态说明
条件不满足时下游状态
全部成功
只有当所有直接上游任务都运行成功时,才触发本任务。
全部为 成功
全部为失败/上游失败 则为 上游失败;
若至少有一个 跳过运行 则为 跳过运行
全部失败
只有当所有直接上游任务都运行失败时,才触发本任务。
全部为 失败、上游失败
跳过运行
全部完成
只要所有直接上游任务都运行结束(成功、失败、上游失败或跳过运行),就触发本任务。
全部为 成功、失败、上游失败、跳过运行
等待上游
全部完成且至少一个成功
所有上游任务都已结束,且其中至少有一个是成功的。
全部为 成功、失败、上游失败、跳过运行,且至少一个为成功
跳过运行
全部完成且至少一个失败
所有上游任务都已结束,且其中至少有一个是失败的。
全部为 成功、失败、上游失败、跳过运行,且至少一个为失败或上游失败
跳过运行
全部跳过运行
只有当所有直接上游任务都因为逻辑判断被跳过运行时,才触发本任务。
全部为跳过运行
跳过运行
全部完成且没有失败
所有上游任务都已结束,状态为成功或跳过运行。
全部为 成功 或 跳过运行
上游失败
没有失败且至少一个成功
上游任务没有失败,且其中至少有一个任务运行成功。常用于分支节点下游汇总节点运行的场景。
全部为成功或跳过运行 且 至少一个 成功
跳过运行
没有跳过运行
所有上游任务都必须实际运行(成功或失败、上游失败),不能有任何任务被跳过。
全部为 成功、失败、上游失败
跳过运行
至少一个失败
只要有一个上游任务一旦失败,本任务立即触发,无需等待其他任务完成。
至少一个 失败 或 上游失败
直到出现失败前:等待上游
全部完成且没有失败:跳过运行
至少一个成功
只要有一个上游任务一旦成功,本任务立即触发,无需等待其他任务完成。
至少一个 成功
直到出现成功前:等待上游
全部完成且没有成功:跳过运行
至少一个完成
只要有一个上游任务一旦完成(成功、失败、上游失败或跳过运行),本任务立即触发,无需等待其他任务完成。
至少一个成功、失败、上游失败、跳过运行
等待上游

任务的保存、提交、运行、高级运行等功能,跟任务调度模式对应操作相同。

配置嵌套工作流任务

嵌套工作流使用场景:嵌套工作流即在一个工作流中与另一个工作流有上下游依赖关系,且需要跟随另一个工作流周期运行,则使用嵌套工作流的能力。
嵌套工作流使用限制:不支持循环嵌套和超过3层级的嵌套。
循环嵌套举例:workflow A中task A嵌套workflow B,workflow B中task B嵌套workflow A
超过3层嵌套举例:workflow A中的task A嵌套workflow B,workflow B中的task B嵌套workflow C,workflow C中的task C嵌套workflow D
新建嵌套工作流任务:任务类型选择嵌套工作流,选择一个被嵌套的工作流,被嵌套工作流仅支持选择同项目下其他工作流。

嵌套工作流任务配置:支持配置被嵌套工作流。调度配置包含上游依赖任务和参数传递。
上游依赖任务仅支持选择同工作流下其他任务。
参数传递规则如下
上游传递给嵌套工作流任务节点的参数,在嵌套工作流任务节点跟随外部工作流运行时可传递生效,能作用在被嵌套工作流下的每个任务。若是被嵌套工作流节点单独运行,则无法实现参数传递。
嵌套工作流任务节点的输出参数可以传递给下游节点,下游节点可正常使用。
传递参数跟任务中配置的参数重名,在外部工作流运行中,则以外部工作流运行配置的参数为准。在被嵌套工作流内部节点运行,则只看内部参数,无法使用外部定义的参数。
多层嵌套支持多层传递,优先级:外层大于内层。


工作流调度运维

工作流运维

工作流列表
可以在工作流列表查看提交到调度的工作流基础情况和进行基础操作。
基础信息:查看工作流名称、文件夹、负责人、调度类型、触发方式、任务数等信息。
基础操作:运行、修改负责人、删除工作流、工作流开发
运行:运行工作流下所有或部分任务
运行范围:支持选择整个工作流或指定运行工作流下部分任务。
参数配置:支持在运行时重新指定参数,若未指定则以提交任务时配置的为准。这里不支持定义新参数,只支持重新指定已有参数值。
执行资源组:支持重新指定调度资源组和集成资源组。

工作流详情:点击工作流列表中的工作流名称,可跳转到工作流详情页,查看工作流运行记录和工作流下任务DAG图。


工作流运行运维

工作流运行列表:工作流周期运行或手动操作运行的记录,会在工作流运行列表展示。可以查看运行的基础信息,进行基础操作。
基础信息:工作流名称、运行ID、开始时间、结束时间、执行状态、执行时长、触发方式、负责人、文件夹。
工作流运行状态
等待中:工作流运行中所有任务节点都未开始运行。
运行中:工作流运行中至少有一个任务在运行中。
成功:工作流运行中所有任务都运行成功。
失败:工作流运行中所有任务运行都到达终态,且至少有一个节点运行失败。
终止中:工作流运行终止中。
基础操作
查看详情:点击支持跳转到工作流运行详情页。
终止:仅“等待中”和“运行中”状态工作流运行支持操作。
重跑:
仅“成功”和“失败”状态工作流运行支持操作。
若工作流中任务依赖关系发生变更(比如增加、删除节点或修改现有节点依赖关系),不支持重跑操作。
DLC Spark Streaming任务不支持重跑,若选择重跑整个工作流,则默认重跑DLC Spark Streaming以外其他任务

工作流运行详情页:在工作流运行详情页可以查看工作流运行下任务节点的运行情况,支持按照图模式、列表模式、甘特图模式查看。
图模式:点击DAG图中的节点可跳转到对应任务运行详情页。
列表模式:点击列表模式中的任务名称可跳转到任务运行详情页。
甘特图模式:点击甘特图模式中的任务名称或图可跳转到任务运行详情页。

任务运行详情页:支持查看任务运行详情,包含运行时间、日志、代码等信息。
任务运行状态
等待上游:实例生成且上游存在未完成的任务。
等待运行:上游通过且等待调度资源中。
运行中:任务实例正在运行。
失败重试:任务配置失败重试,任务处于等待失败重试状态。
失败:任务运行失败或被终止。
成功:任务运行成功。
跳过运行:不满足运行条件或分支条件则跳过运行。
上游失败:直接或间接上游至少有一个失败任务运行,则当前节点为上游失败状态。


告警监控

支持配置工作流和任务告警,对任务的执行状态和时长进行监控。告警规则配置和告警信息功能与任务调度项目基本相同。
工作流调度模式项目支持如下告警条件
监控对象
告警条件
备注
任务
任务执行失败
执行失败不再区分调度触发还是手动触发。
任务
任务运行耗时
-
任务
任务完成时间
-
任务
任务等待总耗时
-
任务
任务执行成功
-
工作流
工作流执行触发(周期)
指触发工作流周期执行时发送告警
工作流
工作流执行失败
指工作流执行失败触发告警,包含周期和手动触发场景。
工作流
工作流执行成功
指工作流执行成功触发告警,包含周期和手动触发场景。
工作流
工作流完成时间(周期)
指工作流执行超过设定阈值时触发告警,仅周期运行场景生效。