Тайм-аут запроса REST API для служб, которые всегда работают медленно - PullRequest
0 голосов
/ 10 апреля 2020

Я работаю над проектом, в котором мне нужно вызвать стороннюю службу REST. Проблема с текущей настройкой заключается в том, что служба не возвращается по крайней мере 16 секунд. Это время отклика может превышать это.

Чтобы избежать потоков, ожидающих на сервере, моя служба имеет значение тайм-аута 16 секунд. Но это значение не помогает. Я искал по этому и обнаружил, что схема выключателя будет полезна. Ссылка: - spring-boot-rest-api-request-timeout . Я считаю, что этот шаблон полезен, когда служба несколько раз медленна. В моем случае это всегда медленный сервис.

Как я могу решить этот сценарий?

1 Ответ

3 голосов
/ 11 апреля 2020

Если вы хотите получить ответ от сторонней службы REST, у вас нет выбора, кроме как ждать, но если у вашего метода запроса есть другое дело. Вам следует использовать Callable Thread, чтобы отправить запрос в службу REST, и позволить Main Thread сначала завершить другую работу, а затем дождаться возвращения Callable.

Возможно, вы можете попытаться использовать некоторый кэш, например @Cacheable или Redis, для этот сценарий. Это может ускорить некоторые подобные запросы.

Или просто позвольте вашему методу запроса сначала отправить ответ клиенту. После этого используйте AJAX для доступа к стороннему сервису REST со стороны клиента.

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