Исходя из вашего вопроса, реактивный - это простой способ справиться с операцией блокировки, особенно IO (сеть, файл и т. Д.)
, вы можете использовать библиотеку , которая реализует этот APIреактивным способом или завершение запроса на блокировку с реактивным API, обычно это делается размещением блокирующего оператора в пуле потоков пыльников
в весеннем webflux-е, вы можете достичь чего-то похожего на
@GetMapping
public Mono<Response> getResponse() {
return Mono.fromCallable(() -> blockingOp())
.publishOn(Schedulers.elastic());
}
publishOn
в этом случае вызовет весь этот поток в другом потоке, вы можете выбрать выделенный пул потоков в качестве
из документов , elastic
- это планировщик
, который динамически создает рабочих на основе ExecutorService и кэширует пулы потоков, повторно используя их после закрытия рабочих.