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

背景信息

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

使用说明

调度任务的时间属性配置,仅定义任务预期执行时间,其实际是否执行与实际执行时间受多方因素影响,包括但不限于以下场景:
  • 调度开关控制

    仅当DataWorks工作空间开启启用调度周期开关后,工作空间中的任务才可以根据其配置自动调度运行。您需进入工作空间的调度设置页面,开启相应开关,详情请参见调度设置

  • 依赖关系对任务执行时间的影响

    任务定时时间基于单个节点维度定义,但任务实际运行时间与节点依赖的上游节点的定时时间有关,所以即便当前节点的定时时间早于上游节点,当前节点仍需等待上游节点的定时时间到来并且执行成功后,当前节点才会执行,详情请参见依赖关系对任务执行的影响

  • 执行资源对任务执行时间的影响

    当前节点的执行,除了取决于上游父节点的定时时间及运行是否成功外,还与当前节点本身执行所用的资源组有关。任务执行时间点是否存在充足的资源也将影响任务的执行,详情请参见任务执行机制

  • 环境影响

    DataWorks仅生产环境才会自动调度,若需要进行周期调度,您需要将任务发布至生产环境。开发环境不支持自动调度。

  • 调度任务执行方式

    DataWorks上,调度任务会根据调度类型及周期数生成相应的周期实例(例如,小时调度任务每天会根据周期数产生相应数量的小时实例),并通过实例的方式运行任务。

实例生成方式

节点提交发布生产环境调度系统时,调度节点会根据您配置的实例生成方式生成自动调度的周期实例,无论哪种方式发布调度任务至生产环境,都可在运维中心的周期任务界面看到任务的最新依赖情况。

但自动调度的周期实例何时生效,或依赖关系什么时候更新,与您选择的实例生成方式有关。节点的实例生成方式包括T+1次日生成发布后即时生成,具体如下。
实例生成方式说明
T+1次日生成节点发布生产环境后第二天自动调度,您可在周期实例页面查看任务的调度执行情况。

若您当天需执行任务,可选择对该任务执行补数据操作。补数据选择业务时间昨天时,与今天的周期实例执行情况一致。

发布后即时生成节点发布生产环境后当天自动调度,您可在周期实例页面查看任务的调度执行情况。
说明 仅当节点设置的定时时间为未来时间,该实例才会正常执行;定时时间为过去时间的实例将会空跑,不真实执行任务(此处存在十分钟时间间隔)。
  • 新建任务:选择此方式时,该任务当天是否真实跑数据,是否空跑,与任务的定时时间及发布时间有关。
  • 已发布的生产任务修改调度周期:选择此方式时,DataWorks会根据最新调度情况替换已生成的未来时间段的实例,但过期的实例不会删除。因此,已发布的任务修改调度频率并选择发布后即时生成实例,当天的依赖关系较为复杂。

调度类型

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

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

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

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

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

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

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

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

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

调度周期

调度周期即任务在调度场景下自动执行的周期数,用于定义在生产环境调度系统中,多久会真实执行一次节点中的代码逻辑。调度任务会根据调度类型及周期数生成相应的周期实例(例如,小时调度任务每天会根据周期数产生相应数量的小时实例),通过周期实例的方式自动调度运行周期任务。DataWorks支持的调度类型如下:
重要
  • 任务调度频率与上游任务周期无关

    任务多久调度一次与任务本身定义的调度周期有关,与上游任务调度周期无关。

  • DataWorks支持不同调度周期的任务互相依赖

    DataWorks中,调度任务会根据调度类型及周期数生成相应的周期实例(例如,小时调度任务每天会根据周期数产生相应数量的小时实例),通过实例的方式运行任务。周期任务设置的依赖关系,其本质是任务间所生成实例的依赖。上下游任务的调度类型不同,其生成的周期实例数及实例的依赖情况不同。不同调度周期的上下游依赖情况,请参见必读:复杂依赖场景调度配置原则与示例

  • 非调度时间任务会空跑

    DataWorks上非每天调度的任务(例如周、月调度的任务)在非调度时间内会空跑,当到达任务定义的调度时间后立即返回成功状态。若下游存在日调度任务,会调起该下游日调度任务正常执行。即上游空跑,下游调度任务正常根据节点定义的调度时间执行。

  • 任务执行时间说明

    此处仅设置任务预期调度时间,任务的实际执行时间受多因素影响。例如,上游定时时间、任务执行资源情况、任务实际运行条件等,详情请参见任务运行条件说明

调度类型说明典型场景配置示例
分钟调度分钟调度即每天指定的时间段内,调度任务按N*指定分钟的时间间隔运行一次。分钟调度的时间间隔最小粒度只能设置为5分钟。每30分钟运行一次。分钟调度
小时调度小时调度即每天指定的时间段内,调度任务按N*1小时的时间间隔运行一次。每小时运行一次。小时调度
日调度日调度即调度节点每天在指定的定时时间运行一次。新建周期任务时,日调度默认的时间周期为每天0点运行一次。您可根据需要自行指定运行时间点。每天凌晨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分钟。
    说明
    • 当重跑属性设置为运行成功或失败后皆不可重跑时,则不会显示出错自动重跑属性,即任务出错不会自动重跑。
    • 您可以在调度配置页面,设置工作空间级别的默认重跑次数和重跑间隔。详情请参见调度设置
    • 任务执行时,超过了超时时间导致的节点失败,自动重跑配置将不生效。

生效日期

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

附录:关于空跑现象说明

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