整体说明


开发模式下,任务支持进行“调度设置”,入口在任务开发模式画布顶部。

调度设置 - 图1

在调度设置弹框中,支持配置如下4大类配置:调度方式、时间设置、依赖设置、执行设置

调度方式


支持配置“调度开启”开关,设置为关,则任务无需配置调度信息;设置为开,则可进行时间设置、依赖设置、执行设置。

“调度开启”开关为关,后续提交上线后,线上任务会变为未调度的状态,且在线上不可被其它任务依赖。

时间设置


调度设置支持设置调度周期首次执行时间。如果需要更多时间格式,可选择corntab设置

调度设置 - 图2

基本信息 说明
调度设置类型 支持常规设置crontab设置
调度周期 支持根据小时分钟以及星期的调度
调度日历 支持根据日历进行调度,调度的日历模板支持用户自定义,系统预置沪深交易日模板
调度生效时间 调度任务的起始时间,后续的周期性任务调度将在这个时间基础上基于调度周期的配置进行
调度失效时间 支持在未来某个时间之后,任务新的实例不再生成。在调度失效之后,如果存在下游,则任务的实例会阻塞。默认为不设置,即永久执行

调度日历

调度日历支持用户通过日历的方式进行调度日的配置,当前系统预置了金融券商领域的部分日历名称,用户可根据实际情况开启。开启后需要手动设置具体的调度日。

调度日历功能使用步骤如下:

  1. 调度日历功能默认不开启,如果需要使用,需要平台管理员,在平台管理基础配置页面开启调度日历

  2. 开启调度日历后,需要进行调度日的设置,单击配置日历

  3. 配置日历页面,选择下载模板,根据模板设置调度日和非调度日,完成后将配置内容上传至平台,调度日历配置完成;

  4. 调度设置中,单击调度日历下拉框,在下拉菜单中选中已配置完成的调度日历。

依赖设置


依赖设置支持对当前任务或节点配置上游依赖,可通过任务依赖,确保当前任务调度时,使用的数据已被上游任务产出。该区块的可配置项说明如下:

基本信息 说明
跨周期自依赖 默认关闭,启用后表示当前任务执行必须依赖此任务的上一周期实例。
任务依赖 支持配置当前任务对其它任务的依赖,支持任务依赖、节点依赖2种方式。任务依赖中,可配置当前任务对上游任务中非禁用的节点依赖;节点依赖中,可配置当前任务的节点对上游任务中非禁用节点的依赖。这2种方式均支持手动配置依赖和智能推荐依赖(详情见后文说明)。
跨流offset 任务配置上游任务依赖后,如果需要依赖的不是上游最近一次运行的实例,则可以通过配置offset值,来实现依赖上游的上上次,或更早之前的依赖(详情见后文说明)。
同周期依赖 当前任务配置的调度设置类型为常规设置,且调度周期为1天时,会显示该开关(详情见后文说明)。

智能推荐

如下图,为配置依赖的页面。可点击任务依赖和节点依赖中的“智能推荐”,更快捷地完成推荐。

调度设置 - 图3

任务依赖的智能推荐,可针对SQL节点间的输入表的产出任务进行推荐。

如果上游表的产出任务来源是开发模式的选中节点运行,则支持推荐;如果上游表的产出来源是线上调度、重跑、补数据、补数据重跑等,且产出节点在开发模式存在,则也会进行推荐。在推荐时,会自动勾选已调度的任务。

调度设置 - 图4

调度设置 - 图5

除了智能推荐依赖,页面也支持用户手动配置添加依赖。

调度设置 - 图6

配置完成后,会显示依赖的信息。

调度设置 - 图7

节点依赖的智能推荐,可推荐所有节点的输入表的产出任务。推荐的任务来源和任务依赖的智能推荐的一致。

调度设置 - 图8

跨流offset

两个具有依赖关系的多节点任务A和B,B依赖于A。根据当前时间点B的计划运行实例的启动时间点,向前推n个A周期的计划运行实例,则B依赖于A的这个特定运行实例批次,n即为offset设定值。offset最小值为0,最大值为A已执行的周期数。
如下图所示,A的调度周期为2小时,开始执行的时间为1日的00:00;B的调度周期为1天,开始执行时间为2日的01:30。当offset=0时,B依赖于A的2日00:00任务实例;当offset=1时B依赖于A的1日22:00任务实例。
调度设置 - 图9

同周期依赖

当同周期依赖的开关开启且满足以下条件时,可实现当前任务的当天实例依赖上游调度日期为1天的任务的当天实例(设置offset时可实现跨天依赖)。
1.当前任务如果配置了调度日历,则依赖的上游1天调度任务也需要引用相同的调度日历、配置相同的日历生效模式;
2.依赖的上游任务,调度设置类型为“常规设置”,且调度周期为1天。

举例:A任务计划每天4点执行, B任务计划每天3点执行, B任务的实例默认是依赖A任务前一天4点的实例,如果打开此处的开关,则B任务的实例依赖A任务当日4点的实例,即A任务的4点实例执行成功后,B任务的3点实例才会开始执行。

执行设置


执行设置的参数中,可配置不同的任务执行策略,页面截图如下:

调度设置 - 图10

具体各项配置说明如下:

参数信息 说明
Spark计算资源 任务中存在Spark执行的节点,比如SQL节点选择了Spark引擎,或者包含了Spark节点,则支持配置此项。用于设置任务运行时,节点是采用节点的Spark计算资源配置,还是统一使用任务粒度配置的资源。
队列 执行任务的yarn队列,对于线上模式使用项目账号执行的客户,如果离线开发配置中配置了队列权限为“线上执行账号”,则用户可以选择所有线上的队列,如果配置了队列权限为“任务负责人”,则用户仅能选择任务负责人有权限的队列。对于线上模式使用个人账号的客户,则仅能选择任务负责人有权限的队列。
高优先级 针对Yarn的调度为Fair Scheduler调度的任务,开启高优先级,任务在执行中会抢占更多资源。
失败设置 任务失败后的处理策略:
1. 继续完成其他分支节点:忽略失败节点,继续完成不依赖失败节点的节点;
2. 停止所有节点:立即停止所有执行的节点,包括正在执行的节点;
3. 仅完成执行中的节点,继续完成正在执行的节点,结束后不再启动新节点。
节点自动重跑 支持开启自动重试并设置重试间隔和次数。
智能跳过 1.支持对满足触发条件的实例设置智能跳过,跳过的实例将打上“智能跳过”的标记;
2.智能跳过具有传递性,当前的实例跳过时,如果下游添加的是任务依赖节点, 则下游的实例将跳过运行;如果下游添加的是节点依赖节点,则下游依赖的节点将跳过运行;
3.目前支持“延迟时长”到达下次执行时间,或超过某个时长时,实例自动跳过;也支持上游任务依赖任一执行失败或全部执行失败时,实例自动跳过的配置。
并发设置 1.如果有相同的任务执行是,选择忽略本次操作会忽略本次执行;
2. 选择并行执行,则会和执行中的作业并行执行。
原始优先级 1.任务优先级包括原始优先级和最终优先级。原始优先级用L1~L4表示(L1为最低优先级),设置后会固定不变;
2.最终优先级基于原始优先级,根据任务依赖从下游向上游传递,定时动态更新到任务上;
3.针对CS调度的Yarn集群,SQL节点、Spark节点和MR节点,在线上调度时,支持将任务的优先级传递给Yarn队列来执行,高优先级任务优先获取Yarn资源。
4.其中Spark引擎需要3.0以上。
自定义参数 支持设置任务粒度的参数,优先级低于节点内设置的参数,高于引用的任务组的参数。