如何批量发送消息从Mule到ActiveMQ

时间:2016-01-08 16:16:24

标签: java mule activemq

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

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

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

如果我在一次交易中发送所有消息,ActiveMQ将给出一个outofmemory异常。

如果我不使用交易,它会成功,但会慢得多。

分批发送邮件的最佳方法是什么?

我可以使用标准组件吗?

我正在使用ActiveMQ 5.13和Mule 3.7

由于

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找批量提交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>

请注意,事务只允许在步骤级别,因此也在提交块中,我认为这正是您正在寻找的。

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

希望这有帮助

此致