Настройки тайм-аута HttpClient Akka

#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 настройки, даже в документации, на которую вы ссылались. Я также хотел бы знать, как изменить время, которое клиент тратит на ожидание возврата запроса на.