Мы создаем веб-приложение, где нам нужно иметь параллелизм для нескольких бизнес-кейсов. Это приложение будет развернуто в контейнере tomcat. Я знаю, что создание пользовательских потоков в веб-контейнере - плохая идея, и я пытаюсь изучить варианты, которые у меня есть.Реализация параллелизма в Java EE Веб-приложение
- Имейте мою многопоточную библиотеку, используемую в качестве компонента JCA. Мы не склонны использовать этот подход из-за кривой обучения, которая может быть задействована.
- Я знаю, что есть API WorkManager API, но я думаю, что это не реализовано tomcat, поэтому этот параметр гаснет.
- Я провел некоторое исследование и выяснил, что библиотека CommonJ рекомендуется для Tomcat. Кто-нибудь использовал его?
- Кроме того, я вижу, что есть ManagedExecutorService, но я не уверен, как его использовать, и отличается ли он от API WorkManager API (и библиотеки commonJ)?
Любая помощь по этому признанию. Кстати, использование JMS не может быть и речи из-за среды развертывания. Я склоняюсь к пунктам 3 и 4, но у меня мало знаний об этом. Может ли кто-нибудь руководить PLS.
Я не уверен, что нерестовые потоки - хорошая идея. если tomcat не знает о потоках, то как бы это контролировать? например закрытие контейнера было бы проблемой, если потоки будут выполняться, а также не забывать, что, поскольку потоки находятся вне контроля tomcat, потоки будут конкурировать с tomcat для памяти. – arya
Arya, Will прав, управляйте своими потоками и (доверяйте моей боли) не ходите по маршруту EJB/JCA. Тот факт, что вы находитесь в контейнере Servlet, не меняет необходимости контролировать пул потоков. Служба Исполнителя может легко помочь вам в этом. Привязывание жизненного цикла ваших исполнителей к вашим сервлетам гарантирует чистую инициализацию и завершение работы. –
BGR, вы, ребята, знаете о ManagedExecutorService? было бы более уместным в этом контексте? – arya