Долгая обработка на стороне сервера заставляет веб-клиента создавать дополнительный поток - PullRequest
0 голосов
/ 18 марта 2020

Я использую Spring boot с сервером tomcat и javax.ws.rs.client.Client Как клиент.

@PostMapping(value = "/go", consumes = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON)
@ResponseBody
public String go(@RequestBody CustomObj obj) throws InterruptedException {

    System.out.println(Thread.currentThread().getName());
    Thread.sleep(12000000);
}

Проблема, которую мы видели, заключается в том, что через 5-6 минут другой поток начинаю запускать этот метод. Кроме того, мы получили java.net.SocketException: Connection reset через ~ 10 минут, наблюдая, что первая треть завершена, а вторая треть все еще работает. Еще через несколько минут второй поток также завершается, но это не то поведение, которое мы ожидаем.

Ожидается: 1. Нет исключения сокета 2. ТОЛЬКО 1 поток, выполняющий эту конечную точку после вызова ее клиентом только один раз. Также отображается 1 запрос к серверу в google chrome inspect element (вкладка network).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...