@surendheran wrote:
Hello,
I have a use-case to retry on certain http response using RetryFlow.withBackoff feature in akka streams. In addition I have applied withMaxConnections to 15 in Akka http’s connection pool and it does not work if I wrap http flow inside RetryFlow.withBackoff.
Example code:
Http http = Http.get(actorSystem); ConnectHttp to = ConnectHttp.toHost(targetUri); ConnectionPoolSettings connectionPoolSettings = ConnectionPoolSettings.create(actorSystem) .withMaxConnections(15); Flow<Pair<HttpRequest, List<A>>, Pair<Try<HttpResponse>, List<A>>, ?> httpFlow = httpFlow = http.cachedHostConnectionPool(to, connectionPoolSettings, actorSystem.log()); return RetryFlow.withBackoff(Duration.ofSeconds(0), Duration.ofSeconds(1), 0d, 5, httpFlow, (httpRequestPair, responsePair) -> { if (responsePair.first().isSuccess()) { HttpResponse httpResponse = responsePair.first().get(); if (httpServerErrorPredicate.test(httpResponse.status().intValue())) { httpResponse.entity().discardBytes(materializer); return Optional.of(httpRequestPair); } } return Optional.empty(); } );
Seems like RetryFlow does not trigger asynchronous calls inside, is there any other option to fix this problem?
Posts: 1
Participants: 1