【问题标题】:Concurrency with JMS与 JMS 的并发性
【发布时间】:2014-08-23 02:54:26
【问题描述】:

我有一个耗时的任务,我想通过将其分成更小的块并同时处理这些块来加快速度。由于它将是在 Glassfish 服务器上运行的 EJB 作业,因此我必须为此目的使用 JMS(只要我能想象)。 因此,我将为每个请求创建 9 条单独的消息。这是一个简单的部分。这些消息随后将由 MDB 处理,该 onMessage 方法将识别有效负载标头消息元素上的每个特定部分。 问题是我无法弄清楚如何收集和存储结果,直到所有结果都准备好将它们组合到响应消息中。 或者实际上我可以想象使用临时文件的解决方案,但我认为这不是最好的。这种工作的最佳做​​法是什么?

【问题讨论】:

    标签: jakarta-ee concurrency glassfish jms


    【解决方案1】:

    如果您按照描述使用 JMS,一种方法是将临时结果存储在数据库表中,然后等待所有任务完成以组合结果。

    相反,只要您至少使用 Java EE 6,您就可以使用 asynchronous method invocation,它替代了一个容器中的许多 JMS 用法,只是为了异步执行某些操作。使用此技术,如教程中所述,您还可以检索最终结果。

    【讨论】:

    • 我根本不用坚持JMS,你的第二个建议才是我真正需要的。
    猜你喜欢
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 2010-11-16
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多