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

背景信息

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

实例生成方式

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

调度类型

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

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

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

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

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

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

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

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

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

调度周期

  • 概念说明

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

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

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

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

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

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

超时定义

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

重跑说明

您可以在时间属性中配置节点在特定情况下重跑,以及指定重跑时间及次数。
说明 使用重跑属性时,应尽量保证任务的幂等性(特殊任务除外),避免在任务出错重跑后,出现大量数据质量问题。例如,在ODPS SQL的开发过程中,使用insert overwrite语句来替代insert into语句。
  • 重跑属性

    重跑属性支持的类型及应用场景如下表所示。

    类型 应用场景
    运行成功或失败后均可重跑 如果节点多次重跑不会影响结果,可选择使用该重跑类型。
    运行成功后不可重跑,运行失败后可以重跑 如果节点运行一次成功后,重跑后会影响运行结果,而运行失败后重跑不会影响结果,可选择使用该重跑类型。
    运行成功或失败后皆不可重跑 如果节点不管运行成功或失败,重跑后都会影响运行结果(例如,某些数据同步节点),可选择使用该重跑类型。
    说明
    • 当选择该类型时,如果系统出故障,在故障恢复后,系统也不会自动重跑相应节点。
    • 不支持配置出错自动重跑
  • 出错自动重跑
    出错自动重跑的配置参数说明如下表所示。
    参数 描述
    重跑次数
    • 重跑次数配置为n,目标任务实际执行时会重跑n-1次。
    • 重跑次数默认配置为3,最少配置为1(即任务出错后不会自动重跑),最多配置为10(即任务出错后会自动重跑9次)。您可以根据业务需求进行修改。
    重跑间隔 默认每次重跑的间隔为30分钟,最小支持设置为1分钟,最大支持设置为30分钟。
    说明
    • 当重跑属性设置为运行成功或失败后皆不可重跑时,则不会显示出错自动重跑属性,即任务出错不会自动重跑。
    • 您可以在工作配置界面,设置工作空间级别的默认重跑次数和重跑间隔。
    • 任务执行时,超过了超时时间导致的节点失败,自动重跑配置将不生效。

生效日期

调度节点在有效日期内生效并自动调度,超过有效期的任务将不会自动调度。

在DataWorks界面的体现为,您可以在周期任务中看到该任务,但将不会再生成周期实例自动调度。