【发布时间】:2020-09-07 21:17:54
【问题描述】:
我正在尝试将 Akka Http 集成到我的 Akka 流中,但在极少数情况下,流会卡住。
implicit val system: ActorSystem = ActorSystem("actor-system")
Source(0 to 10)
.mapAsync(10)(i ⇒ {
val url =
if (i == 1) "http://run.mocky.io/v3/40ff086f-1389-4ca5-ace8-1f0b3ac75582?mocky-delay=10s"
else "http://google.com"
Http().singleRequest(HttpRequest(uri = url))
})
.runForeach(r ⇒ println(s"${System.currentTimeMillis()}: ${r._1}"))
此代码将在第一次输出 1599480226827: 301 Moved Permanently 后卡住 10 秒,然后将同时刷新其余代码。
输出将是:
1599480226827: 301 Moved Permanently
1599480236826: 302 Found
1599480236826: 301 Moved Permanently
1599480236826: 301 Moved Permanently
1599480236826: 301 Moved Permanently
1599480236826: 301 Moved Permanently
1599480236826: 301 Moved Permanently
1599480236826: 301 Moved Permanently
1599480236826: 301 Moved Permanently
1599480236826: 301 Moved Permanently
1599480236826: 301 Moved Permanently
我希望它能按顺序输出所有内容,除了延迟的。
为什么我的流被这样的请求阻止了?又该如何避免呢?
【问题讨论】:
标签: akka akka-stream akka-http