gpt4 book ai didi

scala - Akka流-如何访问流的物化值

转载 作者:行者123 更新时间:2023-12-05 00:38:35 25 4
gpt4 key购买 nike

我正在学习与Akka流一起工作,并且真的很喜欢它,但是对我而言,实现部分仍然是个谜。

http://doc.akka.io/docs/akka-stream-and-http-experimental/snapshot/scala/http/client-side/host-level.html#host-level-api报价

... trigger the immediate shutdown of a specific pool by calling shutdown() on the HostConnectionPool instance that the pool client flow materializes into



如何获得HostConnectionPool实例?

更重要的是,我想大致了解如何访问实现的值并执行一些操作或从中检索信息。

在此先感谢您提供任何文档说明或解释。

最佳答案

这是通过 Source.viaMat 函数完成的。从问题中提供的link扩展代码示例:

import akka.http.scaladsl.Http.HostConnectionPool
import akka.stream.scaladsl.Keep
import akka.stream.scaladsl.RunnableGraph

val poolClientFlow = Http().cachedHostConnectionPool[Int]("akka.io")

val graph: RunnableGraph[(HostConnectionPool, Future[(Try[HttpResponse], Int)])] =
Source.single(HttpRequest(uri = "/") -> 42)
.viaMat(poolClientFlow)(Keep.right)
.toMat(Sink.head)(Keep.both)

val (pool, fut) = graph.run()

pool.shutdown()

由于 Source.single实现为 Unit,因此 Keep.right表示要保留 HostConnectionPool实现的 poolClientFlow。在 .toMat函数中, Keep.both表示要保留流中的左池和 Future中的右 Sink

关于scala - Akka流-如何访问流的物化值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34924434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com