Mule 多重并行处理

Mule 多重并行处理,mule,mule-studio,mule-esb,Mule,Mule Studio,Mule Esb,在Mulesoft中,我希望获取一个对象数组,并为每个对象调用一个Http端点,将结果收集到一个数组中以返回给消费者。我已经使用ForEach循环和数组完成了这项工作。一切正常。但是数组中的每个元素都会调用Http端点,并且必须等待响应才能转到下一个端点。端点是相同的,不过根据正在处理的特定元素,参数略有不同。我想做的是并行发送对所有对象的请求(或者至少发送一个对象块,可能是10个或20个),然后等待响应并将它们收集在一起 我见过一些模式,但它们通常依赖于了解特定元素的特定端点。ie将此对象发送

在Mulesoft中,我希望获取一个对象数组,并为每个对象调用一个Http端点,将结果收集到一个数组中以返回给消费者。我已经使用ForEach循环和数组完成了这项工作。一切正常。但是数组中的每个元素都会调用Http端点,并且必须等待响应才能转到下一个端点。端点是相同的,不过根据正在处理的特定元素,参数略有不同。我想做的是并行发送对所有对象的请求(或者至少发送一个对象块,可能是10个或20个),然后等待响应并将它们收集在一起

我见过一些模式,但它们通常依赖于了解特定元素的特定端点。ie将此对象发送到此端点,将该对象发送到此端点。这里它是一个动态数组,因此端点是动态的。如何做到这一点


谢谢

您可以使用Mulesoft Splitter聚合器来实现上述用例。您可以参考了解更多详细信息。

您可以使用Mulesoft Splitter Aggregator实现上述用例。您可以参考以了解更多详细信息。

您可以尝试使用批处理,其中可以发送一个对象块并等待整个对象块的响应,然后再转到下一批。 在Mule应用程序中,批处理作为独立的代码块独立存在。批处理从外部资源接受数据集(可能是对输入的轮询)以分块处理。批处理优雅地处理处理过程中可能出现的任何记录级故障,以防止整个批处理作业失败。 此外,您可以设置或删除单个记录上的变量,以便在批处理期间,Mule可以根据记录变量对批处理中的记录进行路由或以其他方式操作

比如说

<batch:job name="myBatchJob">
    <batch:process-records>
        <batch:step name="Step1"/>
        <batch:step name="Step2"/>
        <batch:step name="Step3"/>
    </batch:process-records>
</batch:job>

<flow name="flowOne">
    ...
</flow>

...

有关更多详细信息,请参阅。

您可以尝试使用批处理,在批处理中,您可以发送一个对象块并等待整个对象块的响应,然后再转到下一批。 在Mule应用程序中,批处理作为独立的代码块独立存在。批处理从外部资源接受数据集(可能是对输入的轮询)以分块处理。批处理优雅地处理处理过程中可能出现的任何记录级故障,以防止整个批处理作业失败。 此外,您可以设置或删除单个记录上的变量,以便在批处理期间,Mule可以根据记录变量对批处理中的记录进行路由或以其他方式操作

比如说

<batch:job name="myBatchJob">
    <batch:process-records>
        <batch:step name="Step1"/>
        <batch:step name="Step2"/>
        <batch:step name="Step3"/>
    </batch:process-records>
</batch:job>

<flow name="flowOne">
    ...
</flow>

...

有关更多详细信息,请参阅

谢谢-我有时间会看一下。一旦我进行了测试,我将标记为正确我已经在端点已知的其他场景中使用了拆分器聚合器,但是对于拆分集合,我最终使用了集合拆分器和集合聚合器并请求回复VMThank-我有时间的时候会看看这个。测试完成后将标记为正确我在端点已知的其他场景中使用了拆分器聚合器,但对于拆分集合,我最终使用了集合拆分器和集合聚合器,并请求回复VMThank。我不确定我是否能把这个应用到我的案例中,但我会看一看,谢谢。我不确定我是否能把这个应用到我的案例中,但我会看一看