在m子中,我有一个流,它接收带有500mb xml文件的InputStream。

我想按照某些规则拆分xml文件。

结果是我需要发送到ActiveMQ队列的390000条消息。

如果我在一个事务中发送所有消息,ActiveMQ将给出内存不足的异常。

如果我不使用事务,它将成功,但是会慢得多。

批量发送消息的最佳方法是什么?

我可以使用标准组件吗?

我正在使用ActiveMQ 5.13和Mule 3.7

谢谢

最佳答案

我认为您要查找的是批量提交doc here
一旦他收集了指定数量的记录,此组件将执行内部流程组件。
例:

<batch:commit size="100" doc:name="Batch Commit">
    <!-- Put here all the message processor you want for example the active mq one -->
</batch:commit>


请注意,事务仅在步骤级别被允许,因此在提交块中,我认为这正是您所需要的。

脚注:批处理处理器只能在批处理步骤中使用。

希望这可以帮助

问候

10-07 19:42
查看更多