全部产品
大数据开发套件

周期配置

更新时间:2017-09-19 19:31:38   分享:   

任务的时间属性目前支持月、周、天、小时和分钟 5 种配置方式,本文将分别介绍配置方式和调度系统中的实例运行情况。

注意

一个周期运行的任务,它的依赖关系的优先级 大于 时间属性。在时间属性决定的某个时间点到达时,任务实例不会马上运行,而是先检查上游是否全部运行成功。

  • 上游依赖的实例没有全部运行成功 并且 定时运行时间已到,则实例仍为 未运行状态。
  • 上游依赖的实例全部运行成功 并且 定时运行时间还未到,则实例进入 等待时间 状态。
  • 上游依赖的实例全部运行成功 并且 定时运行时间已到,则实例进入 等待资源 状态准备运行。

在大数据开发套件中,当一个任务被成功提交后,底层的调度系统从 第二天开始,将会 每天 按照该任务的时间属性生成实例,并根据上游依赖的实例运行结果和时间点运行。23:30 之后提交成功的任务从第三天开始才会生成实例

注意:

若有一个任务需要每周一执行一次,那么只有运行时间是周一的情况下,该任务才会真正执行,运行时间非周一的情况下,该任务会空跑(直接将任务置为成功),不会实际运行。所以周调度任务,在测试/补数据的时候,需要选择 业务日期=运行时间-1

天调度任务

天调度任务,即每天自动运行一次。新建周期任务时,默认的时间周期为 每天 0 点 运行一次,可根据需要自行指定运行时间点,例如下图指定每天 13 点运行一次。

1-1

应用场景

导入、统计加工和导出任务,都是天任务,具体时间如上图 13 点。统计加工任务依赖导入任务,导出任务依赖统计加工任务,依赖配置如下图(统计加工任务 的依赖属性配置上游任务为 导入任务)所示:

1-2

上图的配置,调度系统会自动为任务生成实例并运行如下:

1-3

周调度任务

周调度任务,即每周的特定几天里每天在特定时间点自动运行一次。当到了没有被指定的日期时,为保证下游实例正常运行,系统也会生成实例但直接设置为运行成功,而不会真正执行任何逻辑,也不会占用资源。

1-4

如上图所示,每周一、周五两天生成的实例会正常的调度执行,而周二、三、四、六以及周日5天都是生成实例然后直接设置为运行成功。

上图的配置,调度系统会自动为任务生成实例并运行如下:

1-5

月调度任务

月调度任务,即每月指定的特定几天里每天在特定时间点自动运行一次。当到了没有被指定的日期时,为保证下游实例正常运行,系统也会每天生成实例但直接设置为运行成功,而不会真正执行任何逻辑,也不会占用资源。

1-6

如上图所示,每月 1 日生成的实例会正常的调度执行,其他日期每天都是生成实例并直接设为运行成功。

上图的配置,调度系统会自动为任务生成实例并运行如下:

image

小时调度任务

小时调度任务,即每天指定的时间段内按 N*1 小时的时间间隔运行一次,比如每天 1 点到 4 点的时间段内,每 1 小时运行一次。

注意

时间周期按 左闭右闭 原则计算,比如配置为从 0 点到 3 点的时间段内,每隔 1 个小时运行一次,表明时间区间为 [00:00,02:59],间隔为 1 小时,调度系统将会每天生成 4 个实例,分别在0点/1点/2点运行。

image

如上图的配置,表示每天 00 点整到 23 点 59 分这个时间段内,每隔 6 小时会自动调度一次,因此调度系统会自动为任务生成实例并运行如下:

image

分钟调度任务

分钟调度任务,即每天指定的时间段内按 N* 指定分钟的时间间隔运行一次,目前能支持的最短时间间隔为每 5 分钟运行一次。

image

如上图配置,表示每天00点整到23点59分这个时间段内,每隔30分钟会自动调度一次,因此调度系统会自动为任务生成实例并运行如下:

image

常见问题

Q: 周/月任务没有被指定的日期怎么办?

A: 周调度和月调度的任务,存在部分日期生成实例然后直接设置为成功的情况,此时可以看到日志中没有生成任何信息的提示,这是正常的情况。

Q: 任务被配置为暂停是否生成实例?

A: 当一个任务被配置为 暂停 时,调度系统仍会每天按时间属性为该任务生成对应的一个或多个实例,但这些实例在定时时间到达时不会真正运行其中的代码,而是直接被设置为运行失败,以保证下游实例不会被触发运行。

被直接设置为运行失败的实例,实际并没有执行其中的代码,因此没有日志信息产生,实例运行情况如下图所示:

Q: 任务被删除,实例是否受影响?

A: 当一个任务运行一段时间后被 删除 时,由于调度系统每天会按时间属性为该任务生成对应的一个或多个实例,实例不会被删除。因此当这些实例在任务被删除了之后才被触发运行时,会由于找不到需要运行的代码而失败,报错信息如下所示:

Q: 想在每月的最后一天计算当月数据怎么办?

A:目前系统不支持配置 每月最后一天,因此如果时间周期选择 每月 31 日,那么在有 31 日的月份会有一天调度,其他日期都是生成实例然后直接设为运行成功。

需要统计每个月的数据时,建议选择每月的 1 日运行,计算上个月的数据。

本文导读目录
本文导读目录
以上内容是否对您有帮助?