egu*_*eys 3 scala akka akka-stream akka-http
我有 URI 列表,我想请求每个 URI,中间有 1 秒的延迟。我怎样才能做到这一点?
val uris: List[String] = List()
// How to make these URIs resolve 1 second apart?
val responses: List[Future[Response]] = uris.map(httpRequest(_))
Run Code Online (Sandbox Code Playgroud)
您可以Source从 URI 列表创建 Akka Streams ,然后throttle将每个 URI 转换为Future[Response]:
def httpRequest(uri: String): Future[Response] = ???
val uris: List[String] = ???
val responses: Future[Seq[Response]] =
Source(uris)
.throttle(1, 1 second)
.mapAsync(parallelism = 1)(httpRequest)
.runWith(Sink.seq[Response])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
351 次 |
| 最近记录: |