用于定义节点在生产环境的周期调度方式。您可以通过调度配置的时间属性,配置节点生成周期实例的方式,实例调度周期与执行时间,是否支持重跑,任务执行超过多长时间自动退出等。本文为您介绍如何配置节点的调度时间属性。

背景信息

您需要进入数据开发节点的编辑页面,单击右侧导航栏的调度配置,配置节点的时间属性。时间属性时间属性包含的配置类别如下表所示。
类别 描述
实例生成方式 用于定义节点在生产环境生成实例的时间。
调度类型 用于定义节点在生产环境的运行方式。
调度周期 用于定义节点在生产环境中的运行频率(生成周期实例个数及实例运行的时间)。
超时定义 用于定义节点运行超过多长时间会失败退出。
重跑说明 用于定义节点生成的实例是否可以重跑,即从数据幂等性考虑,任务是否可以重跑,或者在什么情况下可以重跑。
生效日期 用于定义节点正常自动调度运行的时间范围,该时间范围外,节点将不再自动调度。

实例生成方式

节点提交发布生产环境调度系统时,调度节点会根据您配置的实例生成方式生成周期实例并自动调度。节点的实例生成方式包括T+1次日生成发布后即时生成
  • T+1次日生成:全量转实例。即节点发布后第二天周期实例生效,并将会自动调度运行。
  • 发布后即时生成:即实时转实例。发布节点当天便会生成周期实例,但只有节点设置的定时时间为未来时间的实例才会正常执行,定时时间为过去时间的实例将会空跑不真实执行任务(此处有十分钟时间间隔),详情请参见实例生成方式:发布后即时生成实例
说明
  1. 节点发布生产运维中心后,您可以在运维中心周期任务立即查看该节点。调度系统会根据生产运维中心周期任务来生成每天自动调度的周期实例,实例生成方式功能控制的是生产运维中心周期实例面板何时实例生效。进入运维中心查看周期任务,详情请参见查看并管理周期任务
  2. 当天23:30分之后发布操作(T+1次生成实例和发布后即时生成实例)不生效。
    • 每天23:30前提交发布的任务,第二天实例生效。
    • 每天23:30后提交发布的任务,第三天实例生效。
  3. 发布后即时生成实例,其定时时间在发布时间点10分钟后的任务才会真实执行并产出数据。
  4. 发布后即时生成实例,对调度周期变更的任务,当天依赖关系可能存在影响,已存在且为已完成状态的实例不会删除,定时时间为未来时间,且未运行的实例将会被替换,详情请参见:实例生成方式:发布后即时生成实例

调度类型

DataWorks支持的调度类型如下表所示。
调度类型 影响说明 使用场景
正常调度 按照调度周期配置的定时时间启动调度,正常执行任务(即会真实跑数据)。

当前节点正常执行后,也会触发下游节点正常调度执行,通常任务默认选中该项。

正常状态运行的周期任务,并且生成的周期实例也是正常状态运行。
暂停调度 按照调度周期配置的定时时间启动调度,但节点状态被置为暂停(即不会真实跑数据)。

调度到该任务时,系统会直接返回失败,并且会阻塞依赖当前节点的下游节点执行。

说明 暂停状态的节点在运维中心的图标标识为暂停
冻结状态的周期任务,其生成的周期实例也为冻结状态。当前节点不可执行,并且阻塞下游节点执行。

当某一类业务流程在一定时间内不需要执行时,可选择此调度类型来冻结业务流程根节点,当业务需要执行时,再对业务流程根节点执行解冻操作。解冻任务,详情请参见任务冻结与解冻

空跑调度 按照调度周期配置的定时时间启动调度,但该节点为空跑状态(即不会真实跑数据)。

调度到该任务时,系统会直接返回成功(执行时长为0秒),不会真正执行任务(即执行日志为空)、不会阻塞依赖当前节点的下游节点执行(即下游节点正常执行)、也不会占用资源。

当某一个节点在一定时间内不需要执行,并且不阻塞他的下游节点执行时,可选择此类型调度。

调度周期

说明
  • 仅当DataWorks工作空间开启启用调度周期开关后,工作空间中的任务才可以根据其配置自动调度运行。您需要进入工作空间的调度设置页面,开启相应开关,详情请参见调度设置
  • 任务定时时间为单个节点维度,但任务实际运行时间与节点依赖的上游节点其定时时间有关,所以即便当前节点定时时间早于上游节点,当前节点仍需要等待上游节点定时时间到并且执行成功后,当前节点才会执行。
  • 当前节点执行取决于上游父节点定时时间及运行是否成功外,当前节点本身执行所用资源组在任务执行时间点是否存在充足的资源也将影响任务执行,关于任务执行机制,详情请参见任务运行条件和问题定位
  • 概念说明

    调度周期即在生产环境调度系统中,多久会真实执行一次节点中的代码逻辑。DataWorks中,当一个任务被成功提交后,底层的调度系统从第二天开始,将会每天按照该任务的时间属性生成自动调度的周期实例,并根据上游依赖的实例运行结果和时间点运行。23:30之后提交成功的任务从第三天开始才会生成周期实例自动调度。

  • 周期类型
  • 注意事项
    • 23:30之后提交成功的任务从第三天开始才会生成实例。
    • 一个周期运行的任务,其依赖关系的优先级大于时间属性。在时间属性决定的某个时间点到达时,任务实例不会马上运行,而是先检查上游是否全部运行成功。
      说明
      • 上游依赖的实例没有全部运行成功,并且已到定时运行时间,则实例仍为未运行状态。
      • 上游依赖的实例全部运行成功,并且未到定时运行时间,则实例进入等待时间状态。
      • 上游依赖的实例全部运行成功,并且已到定时运行时间,则实例进入等待资源状态准备运行。

      关于任务运行的条件与排查您可以参考文档:任务到定时时间,为什么还没运行?

    • 调度周期中设置的是周期实例自动调度的定时执行时间,但任务实际运行时,可能会因为等待资源等原因,导致实际运行时间与定时时间不一致。
    • 包含指定执行日期的周、月、年调度节点,在不真实跑数据的日期内,同样会按照调度周期的定时时间启动调度。但该实例的状态为空跑状态(即不会真实跑数据)。当调度到空跑状态的实例时,其空跑表现如下:
      • 系统直接返回运行成功,即执行时长为0秒。
      • 不会真正执行任务,即执行日志为空。
      • 不会阻塞依赖当前节点的下游节点执行,即下游节点正常执行。
      • 不会占用资源。
      说明

      例如:当一个任务需要每周一执行一次,则只有运行时间是周一的情况下,该任务才会真正执行。运行时间不是周一的情况下,该任务会空跑(直接将任务置为成功),不会实际运行。所以在测试或补数据时,周调度任务需要选择星期天,业务日期为运行时间-1。从平台维度看,业务时间前一天的任务会在今天执行。

  • 场景示例说明
    • 如果下游日调度节点依赖了上游每周一调度的节点,那么在非周一的时间段内,周调度实例会空跑,下游日调度节点每天正常执行代码逻辑。
    • 如果下游节点需要和周调度节点保持一致,即每周一跑一次,其他时间均不真实执行代码逻辑,那么您需要配置下游节点为每周一调度。
  • 典型场景与配置示例
    典型场景 配置示例
    每天凌晨24点运行 日示例
    每周五中午12点运行 周示例
    每个月最后一天运行 月示例
    每季度首月最后一天运行 季度示例

超时定义

设置超时时间后,如果任务运行时长超过超时时间,任务将自动终止运行。其配置说明如下:
  • 超时时间对周期实例、补数据实例、测试实例均生效。
  • 超时时间默认值为3~7天,系统根据实际负载情况动态调整默认的任务超时时间,范围为3~7天不等。
  • 手动设定超时时间时,最大值可设置为168小时(7天)。
说明 2021年1月7日之前购买的独享调度资源组,请提交工单联系技术支持人员升级资源组,升级后才可支持超时时间设置。

重跑说明

您可以在时间属性中配置节点在特定情况下重跑,以及指定重跑时间及次数。
说明
  • 使用重跑属性时,应尽量保证任务的幂等性(特殊任务除外),避免在任务出错重跑后,出现大量数据质量问题。例如,在ODPS SQL的开发过程中,使用insert overwrite语句来替代insert into语句。
  • DataWorks工作空间的调度设置页面,用于设置重跑相关参数的默认值,设置后,新创建的任务将使用该默认配置。详情请参见调度设置
  • 重跑属性
    重跑属性不能为空,其支持的类型及应用场景如下表所示。
    说明 单击去设置默认重跑属性值,即可设置重跑属性的默认值。
    类型 应用场景
    运行成功或失败后均可重跑 如果节点多次重跑不会影响结果,可选择使用该重跑类型。
    运行成功后不可重跑,运行失败后可以重跑 如果节点运行一次成功后,重跑后会影响运行结果,而运行失败后重跑不会影响结果,可选择使用该重跑类型。
    运行成功或失败后皆不可重跑 如果节点不管运行成功或失败,重跑后都会影响运行结果(例如,某些数据同步节点),可选择使用该重跑类型。
    说明
    • 当选择该类型时,如果系统出故障,在故障恢复后,系统也不会自动重跑相应节点。
    • 不支持配置出错自动重跑
  • 出错自动重跑
    出错自动重跑(即任务运行失败后会自动触发重跑)的配置参数说明如下表所示。
    参数 描述
    重跑次数 周期任务调度执行失败的情况下,默认自动重跑的次数。

    重跑次数最少配置为1(即任务出错后自动重跑1次),最多配置为10(即任务出错后会自动重跑10次)。您可以根据业务需要进行修改。

    重跑间隔 默认每次重跑的间隔为30分钟,最小支持设置为1分钟,最大支持设置为30分钟。
    说明
    • 当重跑属性设置为运行成功或失败后皆不可重跑时,则不会显示出错自动重跑属性,即任务出错不会自动重跑。
    • 您可以在调度配置页面,设置工作空间级别的默认重跑次数和重跑间隔。详情请参见调度设置
    • 任务执行时,超过了超时时间导致的节点失败,自动重跑配置将不生效。

生效日期

调度节点在有效日期内生效并自动调度,超过有效期的任务将不会自动调度。此类任务为过期任务,您可以在运维大屏查看过期任务数量,并根据情况对其做下线等处理。查看运维大屏,详情请参见查看运维大屏