API Rest на weblogic - который будет создавать потоки на основе полезной нагрузки запроса - как контролировать количество потоков - PullRequest
0 голосов
/ 19 июня 2019

Я разрабатываю Rest API с использованием весенней загрузки. Этот остальные API будут развернуты на сервере приложений weblogic. используя Java 8

Я нахожусь на этапе проектирования, поэтому у меня нет демонстрационного кода.

API получит полезную нагрузку запроса (для утверждения заказов). Полезная нагрузка этого запроса может варьироваться от 1 до 100000 OrderIds

Для каждого из этих OrderIds мне нужно вызвать хранимую процедуру в Oracle, чтобы утвердить заказ.

Хранимая процедура имеет бизнес-логику, и может потребоваться от нескольких секунд до минут, чтобы ответить ответом.

Чтобы не заставлять конечного пользователя ждать, я планирую реализовать это с помощью "DeferredResult" из весны.

Для этого я буду вызывать вызов базы данных в новом потоке, используя: ForkJoinPool.commonPool().submit(() -> { //do database call here }

Однако мне не ясно, как контролировать количество создаваемых потоков? Должен ли я беспокоиться о последующих запросах (которые я не могу контролировать), которые также могут привести к созданию большего количества потоков?

...