gpt4 book ai didi

java - JMS 中的批处理/批量处理

转载 作者:行者123 更新时间:2023-12-02 10:03:43 27 4
gpt4 key购买 nike

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

最佳答案

有很多方法可以实现这一点,但如果您想通过 JMS 来实现,那么我认为最简单、最直接的方法是:

  1. 针对 XML 中的每个条目向队列发送一条消息;调用此workQueue
  2. 消费者(或消费者池,可能是 MDB)将从 workQueue 获取消息并处理它们
  3. 一旦消费者处理完一条消息,它就会将一条消息放置在另一个队列上,表明它已完成;将此称为resultsQueue
  4. 原始发送者可以监听 resultsQueue 并向客户端更新哪些条目已经(或尚未)被处理。

每个 XML 条目一条 JMS 消息非常精细,因此,如果您发现性能不能满足您的要求,您可能希望将多个 XML 条目一起批处理为一条 JMS 消息,以提高吞吐量。

关于java - JMS 中的批处理/批量处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55451331/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com