我需要在Mule ESB CE 3.2.1上聚合内存中的一些csv入站文件,如果需要,重新排序它们。
我怎样才能实现这种逻辑?
我尝试使用message-chunking-aggregator-router,但它在启动时失败,因为xsd schema不允许这样的配置:
<message-chunking-aggregator-router timeout="20000" failOnTimeout="false" >
<expression-message-info-mapping correlationIdExpression="#[header:correlation]"/>
</message-chunking-aggregator-router>
我还尝试将我的关联ID附加到入站邮件,然后通过自定义聚合器处理它们,但我发现Mule内部使用了由以下内容组成的密钥:
Serializable key=event.getId()+event.getMessage().getCorrelationSequence();//EventGroup:264
内部id每次都不同(如果相关序列是正确的):这样,Mule不会像我预期的那样仅使用相关序列,并且多次处理相同的消息。
最后,我可以重新编写自定义聚合器,但我想使用更加统一的技术。
提前致谢,
加布里埃尔
更新
我尝试过使用message-chunk-aggregator,但它不符合我的要求,因为它承认重复。
我尝试详述我需要涵盖的场景:
关于第2点,我很幸运能从文件名中获取信息并将它们放入MuleMessage :: correlation *属性中,以便后续组件可以使用它们。
我做了,但重复的处理方式相同。
再次感谢
加布里埃尔
答案 0 :(得分:1)