离线作业
任务运维分为三部分:作业组、离线作业以及实时作业。
用户在开发界面开发好离线作业组、离线作业或者实时作业之后,进行发布;发布的任务将展示到任务运维列表中,在任务运维中心可对已发布的作业进行上线、设置定时调度、手动执行、修数据、任务下线及查看实例等操作。
离线作业列表
列表形式展示已发布的离线作业,列表展示项包括:
表一 展示项说明
展示项名称 | 描述 |
---|---|
作业名称 | 显示作业的名称。 |
状态 | 显示当前任务的发布/上线状态。状态包括三个枚举值: |
发布版本 | 已发布作业的最新版本。 |
发布人 | 本次作业的发布人。 |
发布时间 | 本次作业的发布时间。 |
上线人 | 本次作业的上线操作人。 |
上线时间 | 本次作业的上线操作时间。 |
上线版本 | 已上线作业的最新版本。 |
操作 | 可对当前作业进行相关操作,包括上线、手动执行、调度设置、调度计划、修数据、下线并删除、查看实例、查看详情。 |
离线作业操作
可对当前作业进行相关操作,包括上线、手动执行、调度设置、调度计划、修数据、下线并删除、查看实例、查看详情。
表二 离线作业操作说明
操作项名称 | 描述 |
---|---|
上线 | 当作业状态为已发布、已上线有新版本时,能够进行上线操作。点击上线之后,作业状态变更为已上线。 |
手动执行 | 单击手动执行,手动运行单次运行任务。运行时需要选择一个业务日期,确定本次运行哪天的业务数据。 |
修数据 | 针对周期性运行失败的情况,或作业初次上线需要对历史数据进行补充的情况。需要对作业进行修数据操作。修数据任务目前需要配置三个条件: 自定义:单独设置本次修数据任务的最大并发数,不影响作业原有配置。 |
调度设置 | 点击操作栏中调度设置对作业进行调度设置。设置好周期性调度之后,当作业发布之后,调度即可使用周期。详见调度设置详情。 |
调度计划 | 单击操作列更多-调度计划可查看当前任务的历史修数据任务及历史调度实例信息。 |
下线 | 转为不可用的状态,不能调度、修数据、手动执行。 |
删除 | 单击操作列删除,可删除掉当前离线作业。 |
查看实例 | 单击操作列查看实例,可跳转至离线作业实例列表,查看当前作业生成的历史作业实例。 |
查看详情 | 单击操作列查看详情,可跳转至离线作业DAG配置页面,对配置内容进行修改。 |
调度设置
调度类型
调度类型:分为基本设置和crontab设置。基本设置以可视化的形式设置周期性调度,cronTab已表达式的形式来进行功能设置。设置对应的周期之后,作业就会按照不同的周期进行运行。
表三 执行周期说明
执行周期 | 说明 |
---|---|
分钟 | 选择分钟级别的周期,分钟级别的执行间隔为5分钟、10分钟、30分钟三种间隔类型。在配置好执行周期之后,可以在预览中,显示按照选中的执行周期一天内,在哪些时间点运行哪些批次。 |
小时 | 选择小时级别的周期,执行间隔从1小时-23小时。开始时间可以从0分-59分任意时间点。 |
天 | 选择天级别的周期,执行间隔从1天-31天。开始时间可以0点0分-23点59分任意时间点。 |
周 | 选择周级别的执行周期,执行间隔从周一到周日,可以进行多选。开始时间可以0点0分-23点59分任意时间点。 |
月 | 选择月级别的执行周期,执行间隔从1天-31天。开始时间可以0点0分-23点59分任意时间点。 |
表四 调度设置cron说明(字符整体不支持l,w,c、#)
字段 | 取值范围 | 特殊字符 |
---|---|---|
分钟 | [0, 59] | * , - / |
小时 | [0, 23] | * , - / |
天 | [1, 31] | ? * , - / |
月 | [1, 12]或[JAN, DEC] | * , - / |
周 | 支持数字【1~6】代表周一~周六 、【0 7】代表周日、英文【SUN-SAT】。 | ? * , - / |
表五 特殊字符说明
特殊字符 | 含义 | 示例 |
---|---|---|
, | 列出枚举值。 | 在字段分钟中,5,20表示分别在5分钟和20分钟触发一次。 |
- | 指定范围。 | 在字段分钟中,5-20表示从5分钟到20分钟之间每隔一分钟触发一次。 |
/ | 指定数值的增量。 | 在字段分钟中,0/15表示从第0分钟开始,每15分钟。在字段分钟中3/20表示从第3分钟开始,每20分钟。 |
? | 不指定值,仅用于日期和星期。 | 当字段日期或星期其中之一被指定了值以后,为了避免冲突,需要将另一个字段的值设为?。 |
* | 匹配任意值。 | 在字段月中,*表示每个月。 |
依赖关系
依赖关系设置是一种任务依赖上的一种触发。当上游作业成功或者完成之后,才会触发下游的作业。
相关依赖限制:
在选择当前作业依赖作业时,需获取当前作业所有被依赖的作业(包括当前作业本身以多层依赖),均不可再被选择依赖,具体场景如下:
1)当前作业不允许依赖其本身,不允许下拉选择当前作业;
2)各类作业间不允许彼此循环依赖,如:当前作业A依赖作业B,则不允许在作业B中再依赖作业A;
3)多个作业间不允许形成循环闭环依赖,如:作业A依赖作业B,作业B依赖作业C,作业C依赖项包括作业C本身、作业B、作业A,因此作业C不可依赖作业C、作业B、作业A。
可以选择依赖项目和依赖作业,在依赖条件上分为全部成功和完成两类。如果是全部成功,则表示需要作业能够全部都运行成功,才能触发下游。选择完成,则表示只需要作业是完成态则能够触发下游运行。
匹配类型
在配置任务依赖后,当前任务执行之前需要对上游依赖任务的执行情况进行判断。判断逻辑如下:
- 当选择精确匹配时,任务执行前会校验上游依赖任务是否在指定时间内执行了特定数量的任务。如果执行时间或任务数量与调度计划不一致,则下游任务触发失败。
- 当选择模糊匹配时,当任务数量一致,但执行时间与调度计划有轻微偏差时,校验通过,触发下游任务。
依赖偏移
依赖偏移是描述哪些实例完成或者成功才能触发下游的,依赖偏移的配置分为三种情况:空、区间偏移、枚举偏移。
- 空:如果依赖偏移处为空,则系统默认按照当前作业的执行周期,向前偏移一个执行间隔单元作为起始时间点,到当前时间点,作为一个偏移时间段。
以在此时间段内的依赖作业是否有对应的实例及实例的状态是否和依赖条件一致,来作为是否触发当前作业的条件。如果一致则触发当前作业,如果不一致则保持“待触发”状态,在等待超过了执行间隔后,变为“未触发”状态。
不同类型的起始默认偏移开始时间点和结束时间点列表如下:
2.区间偏移:依赖偏移可以支持区间偏移关系的填写。基本格式为(-7day,0]。以当前时间前推第一个时间点为开始时间点,以当前时间前推第二个时间点为结束时间点。查看在此时间段内的依赖作业组实例的状态。
表六 依赖偏移参数
参数名称 | 详细说明 |
---|---|
支持的表达式类型 | 点、集合和区间表达式。建议使用区间表达式,以降低下游任务失败的风险。 |
默认值 | 若不填写,默认为区间表达式,表示当前作业组的一个调度周期。例如,若作业组每天3点执行,则默认的检查时间范围是昨天3点到今天3点之间([-24h,0])。 |
集合表达式 | 例如:{-1min, 2hour},使用大括号,表示检查两个时间点的任务。一个是检查本作业组调度时间开始1分钟前的依赖作业执行情况,另一个是检查本作业组调度时间开始2小时后的依赖作业执行情况。 |
区间表达式 | 支持左右开闭四种组合的数学区间写法。例如:作业组调度时间为每日7:00,填写[-20min,10min),表示检查业务时间在每日6:40至7:10之间的依赖作业执行完成情况。 |
支持的单位 | 分钟(min)、小时(hour)、天(day)、周(week)、月(month)。 |
检查结果 | 如果依赖任务的检查时间点/集合/区间内所有任务成功完成,则下游任务将继续执行;否则将不会被触发。 |
点表达式 | 例如:-1min,表示检查本作业组调度时间开始1分钟前的依赖作业执行情况。 |
表七 区间偏移说明
字段 | 说明 |
---|---|
区间表示符号 | 支持下括号和中括号。小括号指不包含此时间点,中括号指包含此时间点。如:( )、[ ]、( ] 、[ )这四种形式。 |
支持的时间单位 | |
数字限制 | 数字需均为非正数的整数。且第一个数值需要小于第二个数值。 |
表八 常用区间偏移示例
区间偏移 | 依赖解释 |
---|---|
(-7day,0] | 以当前时间点前推7天为开始时间点,到当前时间点为结束点,在此范围内,来看相应的作业的实例状态。 |
(-24hour,-12hour] | 以当前时间点前推12小时为开始时间点,到当前时间点前推12小时为结束点,在此范围内,来看相应的作业的实例状态。 |
(-60min,0] | 以当前时间点前推60分钟为开始时间点,到当前时间点为结束点,在此范围内,来看相应的作业的实例状态。 |
3.枚举偏移:依赖偏移可以支持枚举偏移关系的填写。基本格式为{-24hour,-12hour}。已当前时间点前推每一个时间点,查看各个时间点上的是否有对应实例及对应实例的状态。
表九 枚举偏移说明
字段 | 说明 |
---|---|
区间表示符号 | 支持大括号{} |
支持的时间单位 | |
数字限制 | 数字需均为非正数的整数。 |
表十 常用枚举偏移示例
区间迁移 | 依赖解释 |
---|---|
{-24hour,-12hour} | 以当前时间点前推24小时和前推12小时,查看这两个时间点的作业的实例状态。 |
{-10min,-5min} | 以当前时间点前10分钟和前推5分钟,查看这两个时间点的作业的实例状态。 |
依赖串并行
支持作业设置依赖的串并行功能。依赖上一周期,设置为是则表示作业为串行模式,设置为否则表示作业为并行模式,需要用户设置最大并行数。
并行设置如果为2,则表示同一个时刻只允许有两个作业实例同时运行。如果并行设置为1,则效果和串行一致,同一时刻只允许一个作业实例同时运行。
失败策略
当作业内某个作业节点失败时,指定失败策略。
继续:一个节点失败的时候,当前在运行节点继续运行直至完成。
终止:一个节点失败的时候,当前在运行节点停止。