调度周期即任务在调度场景下自动执行的周期数,用于定义在生产环境调度系统中,多久会真实执行一次节点中的代码逻辑。调度任务会根据调度类型及周期数生成相应的周期实例,通过周期实例的方式自动调度运行周期任务。
注意事项
任务调度频率与上游任务周期无关。
任务多久调度一次与任务本身定义的调度周期有关,与上游任务调度周期无关。
DataWorks支持不同调度周期的任务互相依赖。
DataWorks中,调度任务会根据调度类型及周期数生成相应的周期实例(例如,小时调度任务每天会根据周期数产生相应数量的小时实例),通过实例的方式运行任务。周期任务设置的依赖关系,其本质是任务间所生成实例的依赖。上下游任务的调度类型不同,其生成的周期实例数及实例的依赖情况不同。不同调度周期的上下游依赖情况,请参见复杂依赖场景调度配置原则与示例。
非调度时间任务会空跑。
DataWorks上非每天调度的任务(例如周、月调度的任务)在非调度时间内会任务空跑,当到达任务定义的调度时间后立即返回成功状态。若下游存在日调度任务,会调起该下游日调度任务正常执行。即上游空跑,下游调度任务正常根据节点定义的调度时间执行。
任务执行时间说明。
此处仅设置任务预期调度时间,任务的实际执行时间受多种因素影响。例如,上游定时时间、任务执行资源情况、任务实际运行条件等。
周期任务定时调度时间配置场景
当业务流程所有任务都要求在某一时间才可以开始执行的情况下,您只需设置业务流程开始节点的定时时间,业务流程会在定时时间到达后按照依赖关系依次运行整个业务流程。关于依赖关系对任务执行的影响,详情请参见依赖关系对任务执行的影响。
业务流程下所有任务定时时间要求不一致情况下,您需要单独为业务流程下存在定时时间差异的任务设置其定时时间。
场景示例
业务流程下节点C依赖B,B依赖A,A为业务流程开始节点,以下为详细说明:
图示 | 说明 |
整个业务流程需要定时3点开始执行,那么只需要设置A节点在3点执行即可,下游任务即使默认定时时间0点,也需要等待上一A任务3点执行完毕后才执行。 | |
A节点定时3点执行,但B节点需要5点才可执行,C节点需要6点才可执行。在这种情况下,依赖A节点的B、C节点均需要单独设置定时时间。 | |
A节点定时3点执行,但B节点需要5点才可执行,C节点为默认配置,因此需要等待B节点执行完成后再执行,所以C节点执行时间为5:00之后。 |
调度方式
DataWorks支持分钟调度、小时调度、日调度、周调度、月调度以及年调度,每种调度的配置与运行详情可参考以下内容。
分钟调度
使用限制
分钟调度的时间间隔最小粒度只能设置为5分钟。
配置示例
配置路径。
进入数据开发节点的编辑页面,单击右侧导航栏的调度配置,切换至调度时间区域配置节点的调度周期。
场景示例。
目标任务每天
00:00
~23:59
的时间段内,每隔30分钟调度一次,配置详情如下图所示。说明cron表达式会根据您选择的时间自动生成,不可手动修改。
调度详情
每30分钟调度一次的任务其实例定时时间与调度参数替换情况如下图所示。
分钟调度更多场景依赖场景可参见:分钟任务依赖其他任务。
小时调度
注意事项
时间周期根据左闭右闭原则计算。例如,配置调度任务在0点~3点的时间段内,每隔1个小时运行一次。表示时间区间为[00:00,03:00],间隔为1小时,调度系统每天将生成4个实例,实例定时时间分别在0点、1点、2点和3点,即0点、1点、2点和3点是实例的定时运行时间。
您可设置在每天指定的时间段内,节点按指定时间间隔运行一次;也可选择多个时间点,设置在每天指定的时间点运行。
周期调度配置的时间点为定时时间,任务实际运行时,可能会因为等待资源等原因导致实际运行时间与定时时间不一致。
配置示例
配置路径。
进入数据开发节点的编辑页面,单击右侧导航栏的调度配置,切换至调度时间区域配置节点的调度周期。
配置详情。
目标任务每天
00:00
~23:59
的时间段内,每隔6小时自动调度一次,配置详情如下图所示。说明cron表达式会根据您选择的时间自动生成,不可手动修改。
调度详情
调度系统每天将生成4个实例,并在实例的定时时间0点、6点、12点和18点运行,如下图所示。
小时调度更多场景依赖场景可参见:小时任务依赖其他任务。
日调度
日调度即调度节点每天在指定的定时时间运行一次。新建周期任务时,默认调度时间是在00:00
~00:30
时间段随机生成。您可根据需要自行指定运行时间点。例如,指定每天13点运行一次。
配置示例
配置路径。
进入数据开发节点的编辑页面,单击右侧导航栏的调度配置,切换至调度时间区域配置节点的调度周期。
配置详情
假设导入、统计加工和导出任务,均为日调度任务。
上述任务的运行时间为每天
13:00
点。统计加工任务依赖导入任务,导出任务依赖统计加工任务(即统计加工任务的调度依赖,配置依赖的上游任务为导入任务)。
根据上述场景,日调度任务的配置详情如下图所示。
说明cron表达式会根据您选择的时间自动生成,不可手动修改。
调度详情
调度系统会自动为任务生成实例并运行,各业务数据加工时间如下图所示。
调度节点执行需要满足如下条件:
上游任务执行成功。
节点的定时运行时间已到。
任何一个条件不满足,调度节点都无法执行,并且两个条件没有先后顺序。
默认调度时间是在
00:00
~00:30
时间段随机生成。日调度更多场景依赖场景可参见:天任务依赖其他任务。
周调度
注意事项
在非指定的调度时间内,为保证下游实例正常运行,周调度节点会生成空跑的周期实例。
说明空跑现象:系统直接返回运行成功,不会真实执行任务。
实例运行状态为成功,执行时长为0秒,无执行日志。
不会占用调度资源。
不会阻塞依赖当前空跑节点的下游节点执行,即本节点非调度时间内空跑,不影响下游每天调度的任务(日调度、小时调度、分钟调度)正常执行。
任务调度周期是基于单个任务维度的配置,任务最终是否每天调度与任务本身定义的调度周期有关,与上游节点调度周期无关,但上游节点定义的调度时间将影响下游节点实际开始调度的时间。
配置示例
配置路径。
进入数据开发节点的编辑页面,单击右侧导航栏的调度配置,切换至调度时间区域配置节点的调度周期。
配置详情。
目标任务配置在每周一、周五两天定时运行,则在周一、周五生成的实例会正常调度执行,而周二、周三、周四、周六以及周日这五天生成的实例会空跑,即到达定时运行时间后会直接置为成功状态,不会真实执行代码逻辑,配置详情如下图所示。
说明cron表达式会根据您选择的时间自动生成,不可手动修改。
调度详情
调度系统会自动为任务生成实例并运行。
使用补数据功能对周调度任务执行补数据操作时,请注意补数据选择的为业务日期,业务日期=定时调度日期-1。
例如:
每周一的任务在执行补数据操作时应选择业务时间为上周日。
若补数据选择的业务时间非周日,补数据实例将空跑。
更多场景依赖场景可参见:复杂依赖场景调度配置原则与示例。
月调度
注意事项
在非指定的调度时间内,为保证下游实例正常运行,月调度节点会生成空跑的周期实例。
说明空跑现象:系统直接返回运行成功,不会真实执行任务。
实例运行状态为成功,执行时长为0秒,无执行日志。
不会占用调度资源。
不会阻塞依赖当前空跑节点的下游节点执行,即本节点非调度时间内空跑,不影响下游每天调度的任务(日调度、小时调度、分钟调度)正常执行。
任务调度周期是基于单个任务维度的配置,任务最终是否每天调度与任务本身定义的调度周期有关,与上游节点的调度周期无关,但上游节点定义的调度时间将影响下游节点实际开始调度的时间。
月调度支持将指定时间配置为每月最后一天,则每调度任务会在每个月的最后一天运行。
配置示例
配置路径。
进入数据开发节点的编辑页面,单击右侧导航栏的调度配置,切换至调度时间区域配置节点的调度周期。
配置详情
目标任务配置在每月最后一天运行,则每月最后一天生成的实例会正常调度执行,而其它日期生成的实例会空跑,即到达定时运行时间后将直接置为成功状态,不会真实执行代码逻辑,配置详情如下图所示。
说明cron表达式会根据您选择的时间自动生成,不可手动修改。
调度详情
调度系统会自动为任务生成实例并运行,如下图所示。
使用补数据功能对月调度任务执行补数据操作时,请注意补数据选择的为业务日期,业务日期=定时调度日期-1。
例如:
每月一号的任务在执行补数据操作时应选择业务时间为上个月末。
每月月底调度的任务在执行补数据操作时应选择业务时间为月末的前一天。
若补数据选择业务时间为其他时间,补数据实例将空跑。
更多场景依赖场景可参见:复杂依赖场景调度配置原则与示例。
年调度
注意事项
在非指定的调度时间内,为保证下游实例正常运行,年调度节点会生成空跑的周期实例。
空跑现象:系统直接返回运行成功,不会真实执行任务。
实例运行状态为成功,执行时长为0秒,无执行日志。
不会占用调度资源。
不会阻塞依赖当前空跑节点的下游节点执行,即本节点非调度时间内空跑,不影响下游每天调度的任务(日调度、小时调度、分钟调度)正常执行。
配置示例
配置路径。
进入数据开发节点的编辑页面,单击右侧导航栏的调度配置,切换至调度时间区域配置节点的调度周期。
配置详情
目标任务配置在每年的一月、四月、七月、十月的1日和最后一日运行,则在上述指定日期生成的实例会正常调度执行,而其它日期生成的实例会空跑,即到达定时运行时间后将直接置为成功状态,不会真实执行代码逻辑,配置详情如下图所示。
调度详情
调度系统会自动为任务生成实例并运行,如下图所示。
更多场景依赖场景可参见:复杂依赖场景调度配置原则与示例。