@Singleton @ Запуск полностью асинхронный? - PullRequest
1 голос
/ 21 октября 2011

Я использую аннотации @Singleton и @Startup вместе, чтобы создать длительный процесс. Используя эти аннотации, могу ли я с уверенностью предположить, что мой процесс будет одним потоком, работающим полностью асинхронно?

1 Ответ

1 голос
/ 21 октября 2011

Вы можете использовать эти аннотации только на уровне класса, поэтому я не уверен, на какой «процесс» вы ссылаетесь (метод @PostConstruct?)

Я не помню ни одной частиСпецификация EJB 3.1, в которой говорится о необходимой асинхронной инициализации синглтона.

4.8.1 Инициализация синглтона:

(...) разработчик компонента может по желанию настроитьСинглтон для нетерпеливой инициализации.Если аннотация запуска появляется в классе бина Singleton (...), контейнер должен инициализировать экземпляр бина Singleton во время последовательности запуска приложения .Контейнер должен инициализировать все такие Singleons времени запуска, прежде чем какие-либо клиентские запросы будут доставлены любым компонентам корпоративного компонента в приложении.

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

ВВЕДЕНИЕ ИЗ КОММЕНТАРИЙ: как насчет предоставления отдельного асинхронногоEJB-метод для вашей трудоемкой операции, которая будет вызываться из вашего одноэлементного инициализатора EJB?

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