#akka #httpclient #akka-http
#akka #httpclient #akka-http
Вопрос:
Я пытаюсь реализовать HTTP-клиент в моем приложении Akka, чтобы использовать сторонний API. Что я пытаюсь настроить, так это тайм-аут и количество повторных попыток в случае сбоя. Является ли приведенный ниже код правильным подходом для этого?
val timeoutSettings =
ConnectionPoolSettings(config).withIdleTimeout(10 minutes)
.withMaxConnections(3)
val responseFuture: Future[HttpResponse] =
Http().singleRequest(
HttpRequest(
uri = "https://api.com"
),
timeoutSettings
)
Ответ №1:
Это неправильный подход (ниже я ссылаюсь на настройки через файл .conf, а не на программный подход, но это должно легко соответствовать).
idle-timeout
соответствует
время, по истечении которого пул незанятых подключений (без ожидающих запросов) автоматически завершит работу
на уровне пула и на akka.http.client
уровне для
Время, по истечении которого неработающее соединение будет автоматически закрыто.
Итак, вы предпочли бы использовать connection-timeout
настройку.
И для повторных попыток это max-retries
настройка. max-connections
Настройка всего лишь:
Максимальное количество параллельных подключений, которое разрешено устанавливать пулу подключений к одной конечной точке хоста
Смотрите официальную документацию
Комментарии:
1. Там нет
connection-timeout
настройки, даже в документации, на которую вы ссылались. Я также хотел бы знать, как изменить время, которое клиент тратит на ожидание возврата запроса на.