Я использую весеннюю загрузку для разработки сервисов в своем приложении.
У меня есть сценарий, в котором запрос, отправленный на серверную часть, займет некоторое время.
Чтобы не ждать клиента, я хочу немедленно вернуть ответ с сообщением, что ваш запрос принят. Запрос будет выполняться в фоновом потоке.
Я вижу, что Spring предоставляет аннотацию @Async, которую можно использовать для создания отдельного потока обработки из основного потока, и с помощью этого я могу разгрузить обработку в отдельном потоке.
Что я хочу сделать, так это когда я возвращаю первоначальный ответ как принятый, я также хочу предоставить клиенту ключ/токен отслеживания, который клиент может позже использовать для проверки статуса запроса.
Поскольку может быть несколько клиентов, которые будут обращаться к службе, должен быть способ однозначно идентифицировать запрос каждого клиента от другого.
Я вижу, что в Spring Async или Future нет такой функции, которая может возвращать идентификатор отслеживания как таковой.
Одна из возможностей, которую я вижу, это вернуть Future в HttpSession, а затем использовать его для проверки статуса клиентом. Но я предпочитаю не использовать HttpSession и хочу, чтобы мои службы не сохраняли состояние.
Есть ли способ/подход, которым я могу выполнить свое требование.
Спасибо,
BS