首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mulesoft并行处理

Mulesoft并行处理
EN

Stack Overflow用户
提问于 2018-07-26 18:11:50
回答 2查看 365关注 0票数 0

在Mulesoft中,我想获取一个对象数组,并为每个对象调用一个Http端点,将结果收集到一个数组中,然后返回给我的使用者。我已经使用一个ForEach循环和一个数组实现了这一点。所有工作正常。但是数组中的每个元素都会调用Http端点,并且在转到下一个元素之前必须等待响应。端点是相同的,尽管基于正在处理的特定元素的参数略有不同。我想要做的是并行发送对所有对象(或者至少是其中的一大块,可能是10个或20个)的请求,然后等待响应并将它们收集在一起。

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

谢谢

EN

回答 2

Stack Overflow用户

发布于 2018-07-26 19:27:01

您可以使用Mulesoft Splitter-Aggregator来实现上述用例。有关更多详细信息,请参阅Spitter-Aggregator example

票数 2
EN

Stack Overflow用户

发布于 2018-07-26 20:15:06

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

例如

代码语言:javascript
复制
<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 doc

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51536368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档