2013-03-01 2 views
0

Я пытаюсь понять, как решить проблему дизайна, в которую я вступил. Предположим, что в моем приложении мне нужен вид демона/службы, который постоянно работает в фоновом режиме, управляя пулом объектов, чтобы сделать их доступными для клиентов. В частности, этот демон отвечает за управление общим жизненным циклом этих объектов.Фоновый процесс с использованием EJB

Теперь, не погрузившись в детали этого объема, я подумал, как я могу это сделать. Моя первая идея заключалась в том, чтобы полагаться на API WorkManager. Поскольку у меня есть синглтон EJB, моделирующий мое приложение, идея заключалась в том, чтобы получить WorkManager, а затем запустить демона (очевидно, реализуя Work). Я использовал WorkManager при разработке адаптера ресурсов, и я подумал, что могу использовать его также в EJB, но поддерживаю поддержку Glassfish (3.1.2.2) для API WorkManager (в основном по javax.resource.spi.work). Я обнаружил, что из контекста RA это невозможно.

Я взглянул на веб-сайт и нашел interesting article by Daniel Veselka, который, похоже, подходит к проблеме внедрения CommonJ-реализации WorkManager, и я окончательно думал о том, чтобы следовать этому подходу.

Что вы думаете об этом?

ответ

1

Вы также можете использовать синхронизированный компонент, который периодически перенаправляет себя и отправляет JMS-сообщения, которые представляют собой фактические фрагменты работы. Это сработало для нас.

+0

Следуя за прикомандированным компонентом, кварц-планировщик может быть хорошим вариантом, верно? – fabpicca

+0

У меня нет личного опыта работы с кварцем, но да, возможно. Или старый добрый ServletContextListener, который порождает поток. – ewernli