我正在尝试使用akka http创建http客户端。我已经创建了我想要使用的有趣解决方案:How to properly call Akka HTTP client for multiple (10k - 100k) requests? 但我找不到任何办法从这个建筑物中获得预期
Source.from(() -> httpRequests.iterator())
.via(connectionFlow)
.runForeach((HttpResponse response) -> onComplete.accept(response), materializer);
的cource我可以记录它们,但是我需要一些自定义异常处理和try-catch构造。
可能我需要使用recoverWith方法,但我使用Java而不是Scala,我不确定是否正确使用此方法。这个签名是
recoverWith[T >: Out](pf: PartialFunction[Throwable, _ <: Graph[SourceShape[T], NotUsed]]): Source[T, Mat @uncheckedVariance]
我不确定哪些类型和Graph实现在这里使用。
对于单个请求,我使用这种结构:
CompletionStage<HttpResponse> future = Http.get(actorSystem).singleRequest(httpRequest, materializer);
future.whenComplete((HttpResponse response, Throwable failure) -> onComplete.accept(failure, response));
如果有办法处理使用akka-http进行处理的许多请求,请帮助我。