全部文档
文档中心数据流3.0使用手册异常处理

异常处理

数据流中的异常分为节点异常和全局异常。

异常类型

触发后结果

可选处理

节点异常

当前节点运行失败

中断流程并进入全局异常处理,或继续流程进入异常分支

全局异常

整个流程实例中断,流程实例返回失败状态

使用系统通知,或调用自定义 Python 脚本、数据流进行处理

节点异常的配置方式,详见节点高级配置中的异常处理

当全局异常时,支持系统自定义的后续异常处理,例如发送通知、数据回滚等,通知流程管理员及时干预、排查问题并恢复流程。

  1. 系统:固定模板的异常通知,支持邮件、企业微信、钉钉、飞书渠道

  2. 自定义:调用 Python 脚本元素或数据流元素,支持传递以Pipeline开头的预置变量。预置变量体系详见预置变量

支持向指定邮箱发送相关异常信息。

开启后允许选择通知范围:

  1. 最新版本发布人:即当前数据流元素,最近一次发布操作的操作用户的邮箱

  2. 外部接收人:输入具体的邮箱地址,多个地址需要用半角逗号,隔开

邮件内容为默认模板,示例如下:

DEMO 元素链接:查看邮件通知 DEMO

支持添加多个渠道的机器人。添加机器人时,需要为机器人命名,并输入 Webhook 地址,通过 Webhook 调用机器人。

目前支持的渠道包括:钉钉飞书企业微信

钉钉企业微信终端无需额外配置,直接展示推送内容,内容格式固定,涵盖数据流的以下信息:

  • 元素名称

  • 元素链接

  • 实例 ID

  • 实例名称

  • 实例开始时间

  • 异常节点名称

  • 异常信息

飞书还需要自行配置机器人才能实现发送通知的功能,因此我们为飞书渠道提供了更丰富的数据。页面上可以预览数据格式,以便配置机器人。

以下是各渠道推送数据格式和 Webhook 文档,供开发人员参考。

企业微信(markdown 类型的消息):企业微信群机器人配置说明

Copy
{
    "msgtype": "markdown",  # 消息类型:markdown
    "markdown": {
        "content": ""  # 符合 markdown 语法的消息内容
    }
}

钉钉(markdown 类型的消息):钉钉自定义机器人发送消息说明

Copy
{
    "msgtype": "markdown",  # 消息类型:markdown
    "markdown": {
        "title": "数据流执行异常通知",  # 首屏会话透出的展示内容
        "text": ""  # 符合 markdown 语法的消息内容
    }
}

飞书:飞书 Webhook 触发器说明

Copy
{
    "data": {
        "subject": "数据流【XX】 执行异常通知:XX数据流实例ID",  # 消息标题
        "content": "请联系数据流管理员进行异常处理\n实例名称: XX数据流实例\n开始时间: 1900-01-01 00:00:00}\n异常节点: 节点1,节点2\n异常信息: 异常1,异常2\n数据流元素: [点击跳转](当前数据流元素URL})",  # 消息内容
        "element_name": " XX数据流实例",  # 异常数据流元素名称
        "element_url": "当前数据流元素URL",  # 异常数据流元素链接
        "run_id": "XX数据流实例ID",  # 异常的数据流运行实例ID
        "run_name": "XX数据流实例",  # 实例名称
        "start_time": "1900-01-01 00:00:00",  # 异常实例的运行开始时间
        "node_name": [
            "节点1",
            "节点2"
        ],  # 导致异常的节点名称
        "node_code": [
            "code1",
            "code2"
        ],  # 导致异常的节点编码
        "error_msg": [
            "异常1",
            "异常2"
        ]  # 异常信息
    }
}

在自定义分组下,添加【Python 脚本】,添加后,可以选择 Python 脚本元素并配置传参,配置方式参考节点PY 脚本

可使用的预置变量为 Pipeline 级别的变量。

当多个节点同时触发全局异常时,自定义 Python 脚本会按异常触发次数执行。

举例,编排了 3 个并行节点,3 个节点都异常,并都触发了全局异常,全局异常处理调用了自定义 Python 脚本:

那么自定义 Python 脚本会被触发 3 次。以其中一次为例,Python 脚本执行记录可以在作业管理中查看:

DEMO 元素链接:查看 Python 脚本 DEMO

在自定义分组下,添加【数据流】,添加后,可以选择数据流 3.0 元素并配置传参,配置方式参考节点数据流

与全局异常处理选择自定义 Python 脚本同理,可使用的预置变量也为 Pipeline 级别的变量,尤其常使用Pipeline.error下的变量,用于说明异常信息,例如发生异常的节点、错误栈等。

当多个节点同时触发全局异常时,自定义数据流会按异常触发次数执行。

举例,全局异常时,需要发送自定义邮件通知,可见此 DEMO:查看数据流通知 DEMO

需要配置:

  1. 平台消息模板

  2. 用于通知的数据流

  3. 主数据流全局异常时,调用通知的数据流,传参

效果:

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send