Skip to main content

依赖配置

在典型的批处理场景中,任务都是周期性的运行(例如每天运行一次),且不同的任务之间会存在上下游依赖关系,例如数据抽取任务会首先运行,之后才运行SQL处理任务

add-depend

上下游配置

若某任务B必须在任务A完成后运行,则A为B的上游任务,这种依赖关系可通过如下方式配置:在「调度依赖」面板中的「任务间依赖」区域中,输入上游任务的名称,在搜索的下拉结果中选择需要依赖的上游任务

  • 一个任务可以依赖多个上游任务,一个任务也可以被多个下游任务依赖
  • 依赖属性为非必填项,当下游任务需依赖上游任务产出数据,建议配置依赖关系
  • 上游任务失败后,下游任务不会运行,且下游任务的状态会被置为「上游失败」

depend

运行配置

调度系统的基本原则分为以下2类:

判断任务运行条件

每天按计划运行周期实例时,调度系统判断一个实例是否可以运行,需满足2方面条件:

  • 任务的计划时间
  • 上游任务是否全部成功

若不能同时满足以上2个条件,则任务会处于等待提交状态。满足以上2个条件时,此任务在调度系统中具备了运行的条件,调度系统会将任务「提交」至计算引擎(任务进度等待运行状态),此任务还需要获得集群的计算资源,集群资源的分配由计算集群分配,用户不可干预,因此,满足时间+上下游依赖条件,并不意味着任务会立即开始运行,其可能在等待计算资源

例如,某任务A计划时间为每天02:00,上游依赖B、C、D 3个任务,那么判断A任务是否可运行,其判断逻辑为:

  • 当前时间>=02:00
  • 上游任务B、C、D是否全部为成功状态

job

寻找上游实例

在任务的周期性、上下游、跨周期等各种场景,尤其是不同周期的任务相互依赖,调度系统进行依赖判断的基本原则是:

tip

当前实例寻找上游实例时,永远会去寻找一个与其计划时间相等,或之前的实例,不会去寻找未来时间的实例