2012-01-11 4 views
2

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

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

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

спасибо

ответ

2

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

0

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

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

+0

Я вызываю EJB из веб-сервисов отдыха. благодаря – lili

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