更新时间:2022-08-17 GMT+08:00

调度作业

对已编排好的作业设置调度方式。

  • 如果您的作业是批处理作业,您可以配置作业级别的调度任务,即以作业为一个整体进行调度,支持单次调度、周期调度、事件驱动调度三种调度方式。具体请参见配置作业调度任务(批处理作业)
  • 如果您的作业是实时处理作业,您可以配置节点级别的调度任务,即每一个节点可以独立调度,支持单次调度、周期调度、事件驱动调度三种调度方式。具体请参见配置节点调度任务(实时作业)

前提条件

  • 开发作业
  • 当前用户已锁定该作业,否则需要通过“抢锁”锁定作业后才能继续开发作业。新建或导入作业后默认被当前用户锁定,详情参见编辑锁定功能

约束限制

  • 调度周期需要合理设置,单个作业最多允许5个实例并行执行,如果作业实际执行时间大于作业配置的调度周期,会导致后面批次的作业实例堆积,从而出现计划时间和开始时间相差大。例如CDM、ETL作业的调度周期至少应在5分钟以上,并根据作业表的数据量、源端表更新频次等调整。
  • 如果通过DataArts Studio数据开发调度CDM迁移作业,CDM迁移作业处也配置了定时任务,则两种调度均会生效。为了业务运行逻辑统一和避免调度冲突,推荐您启用数据开发调度即可,无需配置CDM定时任务。

配置作业调度任务(批处理作业)

配置批处理作业的作业调度任务,支持单次调度、周期调度、事件驱动调度三种方式。操作方法如下:

单击画布右侧“调度配置”页签,展开配置页面,配置如表1所示的参数。

表1 作业调度配置

参数

说明

调度方式

选择作业的调度方式:

  • 单次调度:手动触发作业单次运行。
  • 周期调度:周期性自动运行作业,参数说明请参见表2
  • 事件驱动调度:根据外部条件触发作业运行,参数说明请参见表3

空跑

如果勾选了空跑,任务不会实际执行,将直接返回成功。

表2 “周期调度”的参数配置

参数

说明

生效时间

调度任务的生效时间段。

调度周期

选择调度任务的执行周期,并配置相关参数。

调度周期需要合理设置,单个作业最多允许5个实例并行执行,如果作业实际执行时间大于作业配置的调度周期,会导致后面批次的作业实例堆积,从而出现计划时间和开始时间相差大。例如CDM、ETL作业的调度周期至少应在5分钟以上,并根据作业表的数据量、源端表更新频次等调整。

  • 分钟:支持在小时整点开始调度运行,调度周期可按间隔时间配置为分钟级别,在当天结束时间结束调度后第二天再自动开始调度。
  • 小时:支持在某一时刻开始调度运行,调度周期可按间隔时间配置为小时级别,在当天结束时间结束调度后第二天再自动开始调度。
  • 天:支持在某天的某一时刻开始调度运行,调度周期为1天。
  • 周:支持在一周中选择一天或多天的某一时刻开始调度运行。
  • 月:支持在一月中选择一天或多天的某一时刻开始调度运行。

依赖作业

选择周期调度作业作为依赖作业,则仅当依赖的作业在某段时间内有实例运行完成时,才开始执行当前作业。当前仅支持通过搜索作业名来选择符合条件的作业为依赖作业。关于设置依赖作业的条件,以及设置依赖作业后的作业运行原理请参见作业依赖详解

另外,依赖作业可以配置为多个作业,对于多个依赖作业,需等到某时间区间(详见设置依赖作业后的作业运行原理)内所有依赖作业实例运行完成后,才能开始执行。

约束条件如下:

  • 作业A的调度周期不能比依赖作业B小。例如,作业A和作业B同为分钟/小时调度,A的间隔时间小于B的间隔时间,则作业A不能设置作业B为依赖作业;作业A为分钟调度,作业B为小时调度,则作业A不能设置作业B为依赖作业。
  • 作业A和依赖作业B的不能有任一调度周期为周。例如,作业A的调度周期为周或作业B的调度周期为周,则作业A不能设置作业B为依赖作业。
  • 调度周期为月的作业只能依赖调度周期为天的作业。例如,作业A的调度周期为月,则作业A只能设置调度周期为天的作业为依赖作业。

依赖的作业失败后,当前作业处理策略

当依赖的作业在当前作业周期内存在运行失败实例后,选择当前作业的处理策略:

  • 挂起

    挂起当前作业,挂起的作业会阻塞后续作业的执行。您可以手动将依赖的作业强制成功,解决阻塞问题。

  • 继续执行

    继续执行当前作业

  • 终止执行

    终止执行当前作业,当前作业的状态为“取消”

例如,当前作业调度周期为1小时, 依赖作业调度周期为5分钟。
  • 如果当前参数配置的是终止执行,依赖的作业12个实例中只要有一个失败的,当前作业就终止执行。
  • 如果当前参数配配置的是继续执行,只要依赖的作业12个实例跑完了,当前作业就继续执行。
    说明:

    依赖的作业失败后,当前作业处理策略可通过配置默认项进行批量设置,无需每个作业单独设置。具体请参见配置默认项

等待依赖作业的上一周期结束,才能运行

作业依赖其他作业时,默认情况下等待某时间区间(详见设置依赖作业后的作业运行原理)内是否有依赖的作业实例运行完成,然后才执行当前作业。如果依赖的作业实例未成功运行结束,则当前作业为等待运行状态。

当勾选此选项后,检查此时间区间的上一周期区间内是否有作业实例运行完,然后再执行当前作业

跨周期依赖

选择作业实例之间的依赖关系。

  • 不依赖上一调度周期。此处可以配置并发数,表示多个作业实例并行执行的个数。如果并发数配置为1,前一个批次执行完成后(包括成功、取消、或失败),下一批次才开始执行。
  • 自依赖(等待上一调度周期结束才能继续运行)。
表3 “事件驱动调度”的参数配置

参数

说明

触发事件类型

选择触发作业运行的事件类型。

  • “KAFKA”

“KAFKA”触发事件类型的参数

连接名称

选择数据连接,需先在“管理中心”创建kafka数据连接。

Topic

选择需要发往kafka的消息Topic。

事件处理并发数

选择作业并行处理的数量,最大并发数为128。

事件检测间隔

配置时间间隔,检测通道下是否有新的消息。时间间隔单位可以配置为秒或分钟。

读取策略

选择数据的读取位置:

  • 从上次位置读取:首次启动时,从最新的位置读取数据。后续启动时,则从前一次记录的位置读取数据。
  • 从最新位置读取:每次启动都会从最新的位置读取数据。

失败策略

选择调度失败后的策略:

  • 挂起
  • 忽略失败,读取下一个

配置节点调度任务(实时作业)

配置实时处理作业的节点调度任务,支持单次调度、周期调度、事件驱动调度三种方式。操作方法如下:

单击画布中的节点,在右侧显示“调度配置”页签,单击此页签,展开配置页面,配置如表4所示的参数。

表4 节点调度配置

参数

说明

调度方式

选择作业的调度方式:

  • 单次调度:手动触发作业单次运行。
  • 周期调度:周期性自动运行作业
  • 事件驱动调度:根据外部条件触发作业运行。

“周期调度”的参数

生效时间

调度任务的生效时间段。

调度周期

选择调度任务的执行周期,并配置相关参数:

  • 分钟
  • 小时

调度周期需要合理设置,如CDM、ETL作业的调度周期至少应在5分钟以上,并根据作业表的数据量、源端表更新频次等调整。

跨周期依赖

选择作业下实例之间的依赖关系。

  • 不依赖上一调度周期
  • 自依赖(等待上一调度周期结束才能继续运行)

“事件驱动调度”的参数

触发事件类型

选择触发作业运行的事件类型。

连接名称

选择数据连接,需先在“管理中心”创建kafka数据连接。

Topic

选择需要发往kafka的消息Topic。

消费组

消费者组是kafka提供的可扩展且具有容错性的消费者机制。

它是一个组,所以内部有可以有多个消费者,这些消费者共用一个ID,一个组内的所有消费者共同协作,完成对订阅的主题的所有分区进行消费。其中一个主题中的一个分区只能由一个消费者消费。

说明:
  1. 一个消费者组可以有多个消费者。
  2. Group ID是一个字符串,在一个kafka集群中,它标识唯一的一个消费者组。
  3. 每个消费者组订阅的所有主题中,每个主题的每个分区只能由一个消费者消费。消费者组之间不影响。

当触发事件类型选择了DIS或KAFKA时,会自动关联出消费组的ID,用户也可以手动修改。

事件处理并发数

选择作业并行处理的数量,最大并发数为10。

事件检测间隔

配置时间间隔,检测通道下是否有新的消息。时间间隔单位可以配置为秒或分钟。

失败策略

选择节点执行失败后的策略:

  • 挂起
  • 忽略失败,继续调度