Overview of Task Control

  • Last update: November 16, 2023
  • 1. 概述

    1.1 版本

    FineDataLink 版本功能变动
    4.0.26

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

    2)4.0.26 版本之前,「结果通知」需要「开启调度」才能设置;4.0.26 版本及之后,「结果通知」可以单独开启

    4.0.30
    • 支持设置定时任务的执行优先级

    • 支持设置定时任务的调度依赖


    查看历史版本更新
    FineDataLink 版本功能变动
    4.0.27
    • 一个定时任务可设置多个执行频率

    • 「调度配置」界面优化

    「调度配置」名称修改为「任务控制」

    4.0.28

    「结果通知」中:

    • 新增钉钉、飞书、企业微信通知渠道

    • 短信/邮件/平台渠道:基于平台体系配置通知对象,通知对象可选择平台用户、部门、角色,三者取并集

    • 通知内容展示具体节点和日志报错

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

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

    1.2 功能简介

    任务控制界面如下图所示:

    11.png

    功能点说明
    调度配置

    定时调度可为定时任务设置执行频率,定期自动运行定时任务,以保证数据能够及时更新,一个定时任务可设置多个执行频率

    事件调度:可设置任务的调度依赖。例如:

    数仓构建过程中 ODS 层有 a、b、c 任务互不影响、DW 层有 d 、f 任务,需要 a、b 任务执行完触发 d 任务,来减少 DW 层对 ODS 层完全更新完等待的时间;若 a、b 执行失败则不触发,来避免数据准确性的问题

    容错机制

    失败重试:

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

    超时限制:

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

    脏数据容忍:

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

    结果通知

    任务执行失败后,可通知相关人员任务执行失败

    通知渠道:平台、邮件、短信、钉钉群机器人、飞书群机器人、企业微信群机器人

    通知内容:任务异常通知、脏数据通知

    任务属性可设置定时任务执行的优先级。当线程数不足时,优先执行队列中级别高的流

    2. 调度配置

    2.1 定时调度

    1)在「调度配置」中,可为该任务设置执行频率,定期自动运行定时任务,以保证数据能够及时更新。点击「添加调度」按钮,可以对这个调度的名称、开始时间、执行频率、结束时间进行设置。如下图所示:

    注1:调度配置的时间跟随服务器时间。

    注2:调度计划名称:不可重名,不可为空,任务名不可包含特殊字符?*:<>|"\/

    1696649078519784.png

    设置项
    说明
    调度计划名

    默认值:调度x-任务名称(起始值为1,累加计数),可自定义修改

    调度状态默认关闭,如果需要设置执行频率,需开启该按钮
    执行频率

    其中「执行频率」有四个可选的设置项。每个设置的说明如下表所示:


    执行频率
    说明对应结束时间
    只执行一次在调度开始后,该任务只运行一次无需设置结束时间
    简单重复执行在调度生效过程中,该任务会简单重复运行

    例如:每天运行一次、每周运行一次等

    结束时间有三种选项:无限期、设定结束时间、额外重复执行次数
    明细频率设置可进行细化的间隔时间设置

    例如可设置:每月的 3 号和 13 号各运行一次

    比「简单重复执行」功能更强大

    结束时间有两种选项:无限期、设定结束时间
    表达式设定利用公式设定「特定时间」

    设定方式可参考:Cron表达式设置

    结束时间有两种选项:无限期、设定结束时间

    注1:设置执行频率后,每次任务执行完毕后才会开始下次执行,在此之前,任务处于排队状态

    注2:设置频率后,若某一次定时任务执行失败,等到下次执行时间,依然会自动执行任务

    2)一个定时任务可设置多个执行频率。如下图所示:

    1696649260602673.png

    具体介绍如下表所示:

    场景说明
    修改调度点击调度右侧的修改1690857275336213.png按钮即可
    删除调度

    先关闭调度,再点击删除按钮

    52.png

    其他说明

    「调度配置」处可为单个定时任务设置执行频率,「任务运维>定时任务>调度计划>定时调度」中,可为多个定时任务设置执行频率

    「调度配置」处可查看该定时任务设置的所有执行频率,但「调度计划」为该任务设置的执行频率,在「调度配置」处无法修改和删除,需要到「调度计划」中修改和删除

    13.png

    点击上图红框中的1696649404999852.png「查看计划」按钮,可跳转到「调度计划」页面进行编辑和删除

    2.2 事件调度

    支持可视化展示任务间调度依赖关系,详情请参见:任务间调用/依赖关系展示

    2.2.1 功能说明

    可设置任务的调度依赖,例如设置任务 A、任务 B 执行成功后再执行任务 C 。

    1)在事件调度 Tab下点击「添加」按钮,如下图所示:

    1696649552437910.png

    2)可为定时任务设置事件调度。设置界面如下图所示:

    1696649751936224.png

    设置说明如下表所示:

    注:一个定时任务只能配置一个事件调度。

    设置项
    说明
    调度计划名不能与定时调度的调度计划名重复
    依赖任务

    1)「依赖任务」支持多选,不可为空

    2)依赖的任务关系不能成环,例如:A 依赖 B,B 依赖 C ,C 不能依赖 A

    3)依赖的任务和调用的任务不能成环

    注:若 A 任务依赖 B 任务自动触发执行,B 任务被 C 任务调用,C 任务拉起 B 任务执行成功后,A 任务会按照设置的事件调度执行

    执行条件

    1)「依赖任务」中选择单个定时任务时,不需要额外配置「执行条件」,依赖任务运行成功后,直接触发本任务的运行

    2)「依赖任务」中选择多个定时任务时:

    • 需要配置「执行条件」:指定时间内,所有依赖任务都运行成功后,本任务才回被触发执行

    • 「执行条件」范围:前 X 周/天/小时/分钟,X 为正整数

    3)事件调度添加成功后,界面如下图所示,可编辑或删除事件调度;删除事件调度前,需先关闭该事件调度。

    1696658217315394.png

    「任务运维>定时任务>调度计划>事件调度」中,可为多个定时任务统一设置事件调度。

    「任务控制>调度配置>事件调度」中可查看该定时任务设置的事件调度,若事件调度是在 调度计划 中设置的,需要到 调度计划 中编辑和删除。如下图所示:

    1696658885438540.png

    2.2.2 特殊场景说明

    场景
    说明
    设置任务 A 依赖任务 B,后期管理员取消了任务 B 的管理权限
    该事件调度仅可查看不可编辑
    事件调度选择的依赖任务被删除

    22.png

    依赖任务名称处为空,需要重新编辑该事件调度才能生效

    3. 容错机制

    设置界面如下图所示:

    1696659781409329.png

    3.1 失败重试

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

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

    1693462877409974.png

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

    注意点:

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

    1689228766126449.png

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

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

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

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

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

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

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

    1689228215119913.png

    3.2 超时限制

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

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

    1693462927609093.png

    「超时限制」逻辑:

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

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

    3.3 脏数据容忍

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

    1693463345397347.png

    脏数据定义:

    可参见 脏数据

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

    功能简介:

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

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

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

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

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

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

    1693549701140880.png

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

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

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

    1693538218828100.png

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

    4. 结果通知

    任务执行失败后,可通知相关人员任务执失败。

    「结果通知」功能默认是关闭状态,需要手动开启。

    1696659894232839.png

    需注意以下几点:

    1)消息通知仅在任务执行失败时,才会通知,任务执行成功不会通知。

    2)单个任务的通知限制 10s 一次。例如:

    A 任务配置了任务失败提醒和脏数据提醒,在 10:00:00,因为脏数据超限导致任务停止。在 10:00:00~10:00:09.999 之间,如果 A 任务被重复触发,同样因为脏数据超限导致任务停止,不会再重复提醒。在 10:00:00~10:00:09.999 之间,如果 B 任务因为脏数据超限导致任务停止,会再提醒(因为不是同一个任务)。

    4.1 结果通知按钮

    默认关闭,需要手动开启。

    4.2 通知内容

    4.2.1 任务异常通知

    任务失败提醒默认为(默认勾选,不可取消):

    独立部署&集成部署中,各个渠道的通知内容统一为:${任务名} 运行失败,开始执行时间为 2023-03-21 15:22:38,结束时间为 2023-03-21 15:22:41,请前往【任务运维】-【定时任务】-【运行记录】查看详情

    具体报错信息:

    默认不勾选,勾选后,若任务失败,将发送报错信息

    各个渠道的通知内容统一为:

    ${任务名} 运行失败,开始执行时间为 2023-03-21 15:22:38,结束时间为 2023-03-21 15:22:41,报错节点为【${节点名称}】,具体报错信息。更多报错内容请前往【任务运维】-【定时任务】-【运行记录】查看详情

    报错示例:

    1692952787638357.png

    多个节点出错,各个渠道的通知内容统一为:

    ${任务名} 运行失败,开始执行时间为 2023-03-21 15:22:38,结束时间为 2023-03-21 15:22:41,报错节点为【${节点名称}】,具体报错信息;报错节点为【${节点名称}】,具体报错信息。更多报错内容请前往【任务运维】-【定时任务】-【运行记录】查看详情

    4.2.2 脏数据通知

    1693464140766450.png

    1)出现脏数据按钮:勾选「脏数据通知」按钮后,「出现脏数据」按钮默认勾选。当定时任务出现脏数据后,进行通知。

    2)脏数据汇总信息按钮:勾选后,在定时任务运行完成后,将脏数据按照原因汇总发送给用户。

    3)具体报错内容如下表所示:

    不勾选「脏数据汇总信息」按钮勾选脏数据汇总信息按钮

    标题:数据开发任务脏数据通知

    【信息平台】您好,数据开发任务「#taskname#」中,产生脏数据,请前往「任务运维」-「定时任务」模块,在对应任务日志中查看详情。

    标题:数据开发任务脏数据通知

    数据开发任务「#taskname#」中,产生脏数据,原因为#errorReason#,请前往「任务运维」-「定时任务」模块,在对应任务日志中查看详情。

    点击展开更多

    errorReason组成规则:

    「原因1-30条」&「原因2-20条」& 「原因2-10条」

    最多显示前三个原因,按照脏数据数量将原因降序排序,超过三个时,显示为:

    「原因1-30条」&「原因2-20条」& 「原因2-10条」等 。


    示例:

    1693464652819375.png

    4)任务日志的「统计」Tab下,展示统计对象的脏数据行数;点击脏数据行数可展开查看各错误原因分类下的脏数据条数。

    4.3 平台用户组

    当通知渠道为短信/邮件/平台渠道时基于平台体系配置通知对象,通知对象可选择平台用户、部门、角色,三者取并集。

    4.4 通知渠道

    统一说明:

    1)当通知渠道选择短信/邮件/平台时,「通知对象」中需要勾选平台用户组按钮。如下图所示:

    1691743936823009.png

    2)通知渠道选择短信/邮箱时,自定义收件人平台用户组不能同时为空。

    3)通知渠道选择短信/邮箱时,自定义收件人不支持引用参数

    4)通知渠道选择短信/邮箱时,平台用户组」中选择了 A 用户,自定义收件人中也设置了 A 用户,不做重复通知。

    具体设置说明:

    通知渠道选择客户端时,可设置通知渠道为钉钉/飞书/企业微信。

    注:一个通知渠道中,Webhook 地址不支持填写多个。

    1691745493553236.png

    钉钉群机器人 Webhook 地址:可参考 自定义机器人接入

    飞书群机器人 Webhook 地址:自定义机器人使用指南

    企业微信群机器人 Webhook 地址:添加群机器人步骤如下图所示,机器人添加成功的提示页面上会有 webhook 地址:

    1691745725675774.png

    5. 任务属性

    可为定时任务设置执行优先级,如下图所示:

    1696660006335532.png

    1)当线程数不足时,优先执行队列中级别高的流,相同优先级的任务按照先进先出的顺序执行;子任务继承父任务的优先级。

    注:存在低优先级任务一直排不上队列资源的风险。

    2)任务运行的优先级,分五个等级:最高(HIGHEST),高(HIGH),中(MEDIUM),低(LOW),最低(LOWEST);默认为中,非空校验;升级默认为中等级。

    3)定时任务修改执行优先级,对正在运行/排队中的任务实例不生效,仅对即将进入队列的任务实例生效。


    附件列表


    主题: 任务运维
    • Helpful
    • Not helpful
    • Only read

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    10s後關閉

    Get
    Help
    Online Support
    Professional technical support is provided to quickly help you solve problems.
    Online support is available from 9:00-12:00 and 13:30-17:30 on weekdays.
    Page Feedback
    You can provide suggestions and feedback for the current web page.
    Pre-Sales Consultation
    Business Consultation
    Business: international@fanruan.com
    Support: support@fanruan.com
    Page Feedback
    *Problem Type
    Cannot be empty
    Problem Description
    0/1000
    Cannot be empty

    Submitted successfully

    Network busy