Мне нужно иметь возможность выполнять две задачи в потоке в контейнере, и я должен понимать лучшие методы для этого. Вот два класса задач, которые мне нужно выполнить:
- Во время вызова веб-служб мне нужно запустить поток, который продолжает обработку после отправки ответа. По завершении обработки сообщение не требуется для исходного отправителя.
- При вызове веб-служб может потребоваться создать несколько потоков, которые должны работать параллельно друг другу. Ответ на первоначальный запрос должен быть заблокирован до тех пор, пока все рабочие не выполнят. Элементы ответа будут взяты из фрагментов результатов каждого потока.
Конечно, я мог бы создать свой собственный экземпляр java.util.concurrent.Executor
и использовать его, но я подозреваю, что контейнеры могут быть достаточно умными, чтобы предоставить тот, которым они управляют.
FWIW - я использую WebSphere 6.1 на JDK 1.5.0 (я знаю, древний ... но это то, что есть). Я использую веб-сервисы, разработанные с использованием Apache CXF, поэтому я нахожусь в контейнере сервлетов, но настроен на Spring.