Приложение имеет длительный процесс с интенсивным использованием процессора, который в настоящее время выполняется на одном сервере (метод EJB) последовательно, когда клиент запрашивает его.
Его теоретически возможно (с концептуальной точки зрения) разделить этот процесс на N кусков и выполнять их параллельно, пока вывод всех параллельных заданий может быть собран и объединен, прежде чем отправить его обратно клиенту, инициировал этот процесс. Id нравится использовать эту распараллеливание для оптимизации производительности.
Как я могу реализовать эту распараллеливание с помощью EJB? Я знаю, что мы не должны создавать потоки в методе EJB. Вместо этого мы должны публиковать сообщения (по одному на каждое задание), которые будут потребляться при помощи сообщений beans (MDB). Но тогда это не было бы синхронным звонком. И быть синхронным, по-видимому, является требованием в этом случае, так как мне нужно собрать вывод всех заданий, прежде чем отправлять его обратно клиенту.
Есть ли решение для этого?