2012-12-19 5 views
0

В моей текущей работе для использования мы делаем несколько удаленных вызовов службы (SOAP через HTTP) в последовательности. Это независимые вызовы, и мне приходится сопоставлять данные с каждого вызова и, наконец, подготовить ответ. Я хочу распараллелить эти вызовы.Распараллеливание вызовов удаленной службы

+0

Какие рамки вы используете в настоящее время для вызова своих веб-сервисов? – muruga

+0

Я использую Sun Metro для вызова сервисов. – Niranjan

ответ

2

Похоже, что вы должны использовать ExecutorService.

Сделайте класс, который выполняет ваш запрос и реализует Runnable. Затем вы можете отправить экземпляры этого класса в Executor, и он будет следить за выполнением этого в нескольких потоках (объединение и т. Д. - все настраиваемые). Вы получаете обратно объект Future для каждой подачи, и вы просто вызываете get(), чтобы получить свой результат.

Структура означает, что вам не придется беспокоиться о инстанцировании темы, создание объединения, определения того, что работать и т.д.

Вот the tutorial.

+0

Брайан: Это хорошая идея создать собственные потоки внутри контейнера Java EE? – Niranjan

0

Нерестную нить в Java EE - это не-ход, о котором нам говорят. Однако OP не говорит, используется ли Java EE или Java SE.

Для Java EE может быть полезно использовать WorkManager API.

Помимо этого да, ExecutorService или Spring TaskScheduler (скорее всего, если у меня возникнет проблема).

Смежные вопросы