Отправить статус 200, не дожидаясь возврата - PullRequest
0 голосов
/ 27 мая 2020

У меня есть запрос GET в моем API, который можно вызвать через url. Моя проблема в том, что этот запрос ожидает какого-то возврата, хотя это может длиться бесконечно. Я хотел бы вернуть код состояния 200 в самом начале приложения, чтобы пользователь не блокировал свою страницу в ожидании ответа, а остальная часть кода выполняется нормально.

Мой фактический код выглядят так:

@Controller
public class APITest {

    @RequestMapping(value="test", method=RequestMethod.GET)
        public void RequestTest(
                @RequestParam(value="token", required=false) String token, 
                HttpServletRequest request, HttpServletResponse response)
                throws InterruptedException, ParseException, IOException, SQLException {

            // SOME CODE HERE

            return;
        }   
}

Возможно ли то, что мне нужно, используя этот метод?

1 Ответ

0 голосов
/ 27 мая 2020

Вы можете запустить код в другом потоке.

@Controller
public class APITest {

    @RequestMapping(value="test", method=RequestMethod.GET)
        public void RequestTest(
                @RequestParam(value="token", required=false) String token, 
                HttpServletRequest request, HttpServletResponse response)
                throws InterruptedException, ParseException, IOException, SQLException {

            CompletableFuture.runAsync(() -> longRunningTask());

            return;
        }   
}

longRunningTask() будет выполняться в другом потоке, а RequestTest() вернется напрямую с 200.

...