我遇到以下情况,其中我收到一个 XML,其中包含 100,000 中的多个条目。对于每个项目,我必须同时处理消息,一旦批处理/批量完成,我必须通知客户端我已处理它发送的100,000个条目。我正在考虑在消息驱动的 Bean 中添加每条消息,以同时处理其中的每条消息。我的问题是我如何知道MDB处理了此批处理中的所有消息,并向我发送此批处理/ XML中的所有消息都已完成的信号?在 Java 消息队列中执行此操作的最佳方法是什么?我希望在处理此 XML 中的所有消息时收到通知,以便我可以通知客户端。
1 回答

大话西游666
TA贡献1817条经验 获得超14个赞
有很多方法可以实现这一点,但如果你想通过JMS做到这一点,那么我认为最简单,最直接的方法是:
为XML中的每个条目向队列发送消息;称之为 .
workQueue
使用者(或使用者池,它可能是 MDB)将从中获取消息并处理它们
workQueue
一旦使用者完成处理消息,它就会将消息放在另一个队列上,指示它已完成;称之为 .
resultsQueue
原始发件人可以侦听并更新客户端有关哪些条目已处理(或尚未处理)的信息。
resultsQueue
每个 XML 条目一个 JMS 消息非常精细,因此,如果您发现性能不能满足您的要求,您可能希望将多个 XML 条目一起批处理到单个 JMS 消息中,以提高吞吐量。
添加回答
举报
0/150
提交
取消