该应用程序具有CPU密集型长进程,当客户端请求时,该进程当前在一个服务器(EJB方法)上串行运行.
理论上可以(从概念的角度)将该进程拆分为N个块并并行执行它们,只要可以收集并连接所有并行作业的输出,然后再将其发送回发起进程的客户端.我想使用这种并行化来优化性能.
如何使用EJB实现此并行化?我知道我们不应该在EJB方法中创建线程.相反,我们应该发布消息驱动bean(MDB)消息(每个作业一个).但那时它不再是同步通话了.在这种情况下,同步似乎是一个要求,因为我需要在将所有作业的输出发送回客户端之前收集它们的输出.
这有解决方案吗?