历史版本2 :任务控制-容错机制 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineDataLink 版本功能变动
4.0.26

新增「超时限制」和「失败重试」功能

4.0.29
  • 可设置脏数据阈值,使任务具备一定容错性

  • 当出现脏数据时,及时通知用户;在任务运行完成后,将脏数据按照原因汇总发送给用户

4.1.1

当循环容器中的节点执行错误时,若设置失败重试,则使用当次循环的参数立即重试,不再重试整个循环容器


1.2 功能简介

容错机制 Tab 下,可设置超时限制失败重试脏数据容忍。如下图所示:

1704164128551050.png

超时限制

当一个任务长时间运行,该任务可能属于非正常状态,且会导致资源的占用

针对此场景,可在「超时限制」中配置任务的超时时间,运行时间超过设置的时间后正在执行的任务会被强制杀死

失败重试

由于当时的网络波动或者其他原因,导致任务运行中断,过段时间重新运行任务即可成功执行

针对此场景,可在「失败重试」中设置重跑次数和两次重跑之间的间隔,任务在失败之后会进行自动重试

脏数据容忍

用户可设置脏数据阈值、使任务具备一定容错

脏数据定义:脏数据

2. 失败重试编辑

由于当时的网络波动或者其他原因,导致任务运行中断,过段时间重新运行任务即可成功执行。针对此场景,可在「失败重试」中设置重跑次数和两次重跑之间的间隔,任务在失败之后会进行自动重试。

「失败重试」功能默认是关闭状态,需要手动开启。

1704165181531340.png

设置项
说明
重跑次数默认值为 3 次,最大值为 100 次
每次间隔默认值为 2 分钟,最大值为 60 分钟,粒度为分钟

注意点:

1)「失败重试」逻辑:是针对单个节点的失败重试设置

1704165240551081.png

2)发生网络中断等情况造成无法与数据库建立连接,导致追加写入的数据仅写了一半,但是在重跑的时候会因为主键冲突而报错或者追加写入重复数据。

3)若 调用任务 中设置了失败重试,是重新执行整个子任务,而非子任务的失败节点。

4)若定时任务中包括循环容器,且设置了失败重试:

4.1.1 之前的版本:

  • 若失败节点在循环容器中,将重跑整个循环容器。

  • 若失败节点在循环容器中,若一共循环 5 次,循环第二次时失败,将从第一次循环开始执行。

4.1.1 以及之后的版本:

  • 当循环容器中的节点执行错误时,使用当次循环的参数,立即重试,不再重试整个循环容器。

5)若任务设置了失败重试,重跑次数设置为 3 次,则 3 次都失败后,该任务才被判定为失败。

如下图所示,连线执行判断为「数据同步」节点失败再执行「消息通知」。若失败节点为「数据同步」节点,重跑次数设置为 3 次,若 3 次「数据同步」节点都失败,则「消息通知」才生效。

1704165286410213.png

3. 超时限制编辑

当一个任务长时间运行,该任务可能属于非正常状态,且会导致资源的占用。针对此场景,可在「超时限制」中配置任务的超时时间,运行时间超过设置的时间后正在执行的任务会被强制杀死。

「超时限制」功能默认是关闭状态,需要手动开启。默认值为 1 小时,最大值为 48 小时。

1704165317856671.png

「超时限制」逻辑:

  • 用户若配置了「失败重试」,「失败重试」会生效。

  • 用户没有配置「失败重试」,任务超时则视为任务失败,前端日志显示超时失败。

4. 脏数据容忍编辑

用户可设置「脏数据阈值」,使任务具备一定容错性。当任务运行时遇到脏数据,达到「脏数据阈值」前将继续执行定时任务,达到「脏数据阈值」后再报错。

1704165382162116.png

脏数据定义:

可参见 脏数据 

注:定时任务运行过程中,由于数据处理过程异常(例如 JSON 解析失败等),导致转换过程中产生若干条脏数据,「脏数据阈值」暂不支持此类脏数据。

功能说明:

1)「脏数据容忍」按钮默认关闭,「脏数据阈值」默认为 1000,输入范围为1~1万。

2)设置「脏数据阈值」后,默认所有输出类组件的错误数据均进入脏数据队列,并记录为对应算子/节点的脏数据。

输出类组件,需同时满足下面条件:

注:Redshift(开启高速装载)、StarRocks 和 Doris 数据库受阈值控制,但统计不到脏数据原因。

  • 「数据转换」节点中的输出类算子 、「数据同步」节点

  • 输出端选择「DB表输出」,且写入端数据库不是:Hive(hdfs)、GP(开启并行装载)、星环数据库。

1704165433898907.png

3)脏数据阈值对任务中所有输出类组件统一生效,例如:配置项中配置 1000 ,则对于该任务中,所有的输出类组件,均设置节点级别的脏数据阈值为 1000 。

若任务运行过程中产生脏数据:

1)任务日志展示区域的「统计」页将展示脏数据信息;点击脏数据行数可展开查看各错误原因分类下的脏数据条数。

17.png
2)任务运维>运行记录」处,点击运行实例右侧的「查看详情」按钮,可重试任务、查看重试记录。重试任务功能介绍、重试的处理场景请参见:定时任务运维 文档的 2.2 节内容。