我有一个 Akka Streams 源,它会遍历流程并发布 HTTP 请求:
source.map(toRequest)
.via(Http().outgoingConnection(host))
.map(toMessage)
假设toRequest
方法将字符串映射到HttpRequest
,以及toMessage
方法映射了HttpResponse
到下游处理所需的消息类。假设消息类需要包含一些原始信息。
是否可以得到原件HttpRequest
来自HttpResponse
?如果没有,有什么办法保留一些原始信息吗?
一种方法是使用Future基于变体 https://doc.akka.io/docs/akka-http/10.1.1/client-side/request-level.html#future-based-variant客户端 API 和保存您想要向下游传播的信息的自定义案例类。例如:
case class Message(request: HttpRequest, response: HttpResponse)
source
.map(toRequest)
.mapAsync(parallelism = 3) { request => // adjust the level of parallelism as needed
Http().singleRequest(request).map(response => Message(request, response))
}
// continue processing; at this point you have a Source[Message, _]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)