ExecutorService vs Асинхронная аннотация - PullRequest
4 голосов
/ 11 января 2012

У меня есть список EJB с, каждый из которых может работать более 1 минуты.Я хотел бы запустить их в цикле асинхронно, а затем через 10 секунд проверить результаты, используя вывод Future.

Как я понимаю, аннотации ExecutorService и @Asynchronous для метода могут дать мне эту функциональность.

Когда я должен использовать аннотации Asynchronous, а когда лучше ExecutorService?

спасибо

Ответы [ 2 ]

1 голос
/ 11 января 2012

с моей точки зрения я бы придерживался функций EJB и, как следствие, использовал бы аннотацию @Asynchronous, которая, кажется, очень хорошо подходит для ваших нужд ... ExecutorService создан для мира Java SE, и я выигралНе рекомендуется использовать его непосредственно на сервере Java EE 6.

0 голосов
/ 11 января 2012

Кто звонит в EJB?Если это сервлет, то вы можете рассмотреть возможность поддержки асинхронного сервлета.

Асинхронные EJB-компоненты более полезны, чем создание собственных потоков (через ThreadPoolExecutor), поскольку контейнер будет устанавливать контексты потока в асинхронном потоке: загрузчик класса контекста,java: пространства имен, безопасность и т. д. Сервер приложений также может иметь дополнительные качества обслуживания (например, мониторинг, тайм-ауты и т. д.) для потоков, которыми он управляет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...