1. Обзор
В этом руководстве мы рассмотрим, как мы можем использовать класс DeferredResult
в Spring MVC для выполнения асинхронной обработки запросов .
Асинхронная поддержка была введена в Servlet 3.0 и, проще говоря, позволяет обрабатывать HTTP-запрос в другом потоке, а не в потоке получателя запроса.
DeferredResult,
доступный начиная с Spring 3.2, помогает перенести длительные вычисления из потока http-worker в отдельный поток.
Хотя другой поток потребует некоторых ресурсов для вычислений, рабочие потоки в это время не блокируются и могут обрабатывать входящие клиентские запросы.
Модель обработки асинхронных запросов очень полезна, поскольку помогает хорошо масштабировать приложение при высоких нагрузках, особенно для операций с интенсивным вводом-выводом.