Jakarta ee 与JMS的并发性

Jakarta ee 与JMS的并发性,jakarta-ee,concurrency,glassfish,jms,Jakarta Ee,Concurrency,Glassfish,Jms,我有一个耗时的任务,我想通过将它划分成更小的块并同时处理这些块来加快速度。因为这将是在Glassfish服务器上运行的EJB作业,所以我必须使用JMS来实现这一目的(只要我能想象得到)。 因此,我将为每个请求创建9条单独的消息。这是一个简单的部分。然后,这些消息将由MDB处理,它的onMessage方法将识别有效负载头消息元素上的每个特定部分。 问题是,我不知道如何收集和存储结果,直到所有结果都准备好将它们组合到响应消息中。 或者实际上我可以想象临时文件的解决方案,但我认为这不是最好的。这类工作

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

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


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

我根本不必坚持使用JMS,您的第二个建议正是我真正需要的。