2013-07-12 2 views
3

У меня есть задача, которая может длиться до 100 мс, которую я хочу начать с начала обработки запроса и получить результат, когда мне это понадобится позже. Я не хочу блокировать и распространять каждый запрос на эту сумму.Использование ExecutorService/Futures в Tomcat?

В приложении Java для ванилин я создал бы ExecutorService и запустил его как Callable<T>, используя Future<T>, чтобы получить результат позже.

Поскольку Tomcat поддерживает собственный пул потоков, должен ли я пытаться координировать его? Другими словами, мой пул ExecutorService конкурирует с потоками Tomcat? Это проблема? Есть ли преимущество в том, чтобы каким-то образом конкурировать с бассейном Tomcat?

Любые советы от кого-то, у кого есть аналогичный опыт, будут высоко оценены. Также я не заинтересован в этом вопросе добавления дополнительных зависимостей, таких как Spring и т. Д.

ответ

3

Должен ли я пытаться координировать работу с ним?

Нет, Tomcat бассейн предназначен для Tomcat

Другими словами, мой ExecutorService бассейн конкурируя с потоками сервера Tomcat?

Совсем нет. Это ваш бассейн.

Это проблема? Есть ли преимущество в том, чтобы каким-то образом конкурировать с бассейном Tomcat?

Нет проблем с поддержанием настраиваемого пула приложений, если он не производит миллионы потоков. Просто не забудьте указать темы daemon status so tomcat shutdown scripts не будет жаловаться на 'can not stop Tomcat'

+0

Другими словами, просто сделайте это так же, как в приложении для консоли на ваниле? – mckamey

+0

да, это желаемый способ. – jdevelop