Task Manager


Task Manager 节点将其输入转换为一个或多个任务对象,并将其中继到下游节点。之后,它会监控下游节点是否按照其设计处理一个或多个任务对象。Task Manager 节点会记录每个对象的执行结果,随后将失败的对象重新中继到下游节点,以便按照配置重新执行。


如果下游节点中的任何一个节点未能像所设计的那样处理任何任务对象,则 Task Manager 节点便会将处理该对象的任务标记为 失败。仅当所有下游节点都成功处理所有任务对象时,才能将任务标记为 成功

节点类型

Logic。

输入和输出能力

该节点可以接受 1 个输入和 1 个输出。输入可以是以下格式:

  • 字符串

  • 数组

  • JSON 数组


输出是由原始输入拆分成的一个或多个 JSON 对象。


每个任务对象都由唯一的任务 ID 进行标识,该 ID 存储在输出 metadata 中,而且可由表达式 ${metadata.taskId} 引用。

节点属性

../../_images/task_manager.png


名称

必填。

该节点的名称。


任务类型

必填。

Task Manager 节点拆分其输入后所形成任务对象的数量。其值如下所述。

  • 单任务:Task Manager 节点将输入作为一个整体进行处理,将整个输入传递到下游节点并跟踪其执行结果。

  • 多任务:Task Manager 节点将输入拆分为多个任务对象,传递到下游节点并分别跟踪其执行结果。

    • 任务列表

      如果在前面选择了 多任务,则必须填写该字段。

      Task Manager 节点拆分其原始输入后所形成任务对象的列表。你可以使用 ${msg.key} 或 ${metadata.key} 等表达式来指定输入的哪一部分将会从中拆分为另外的任务对象。


策略

必填。

Task Manager 节点处理无法在任何下游节点上执行的任务对象的方式。如果打开该开关,Task Manager 节点会向下游重新发送执行失败的任务对象,以便所有下游节点均可再次处理此类任务对象,直到成功处理所有对象或重试次数达到 重试次数 为止。


重试次数

选填。

策略 一同使用。如果打开 是否重试失败任务 开关,Task Manager 节点会向下游重新发送执行失败的任务对象,以便所有下游节点均可再次处理此类任务对象,直到成功处理所有对象或重试次数达到 重试次数 为止。


最大重试次数为 5 次。如果未指定,将不会进行任何重试。


描述

选填。

该节点的描述。

使用限制

  • 最大重试次数:5

示例

输入示例

以下是 JSON 数组作为输入的示例:

[
    {
        "assetId":"abc",
        "timestamp":24214324324,
        "measurepoints":{
            "temperature":22.4,
            "humidity":78
        }
    },
    {
        "externalId":"externalId",
        "timestamp":24214324324,
        "measurepoints":{
            "speed":32,
            "heat":40
        },
        "assetId":"assetId"
    }
]

输出示例

假设输入是 JSON 数组,则输出是通过拆分输入所形成的多个 JSON 对象:

{
    "assetId":"abc",
    "timestamp":24214324324,
    "measurepoints":{
        "temperature":22.4,
        "humidity":78
    }
}
{
    "externalId":"externalId",
    "timestamp":24214324324,
    "measurepoints":{
        "speed":32,
        "heat":40
    },
    "assetId":"assetId"
}

相关节点