鑑於以下噴碼:噴霧的`detach`指令
object Main extends App with SimpleRoutingApp {
implicit val system = ActorSystem("my-system")
val pipeline: HttpRequest => Future[String] = sendReceive ~> unmarshal[String]
startServer(interface = "localhost", port = 8080) {
path("go") {
get {
detach() {
complete {
val req = Post("http://www.google.com") ~> addHeader("Foo", "bar")
pipeline(req).recoverWith[String]{ case _ => Future { "error!" } }
}
}
}
}
}
}
我把complete
功能detach指令中。
該文檔解釋分離將:execute the inner route inside a future.
什麼是使用(或不)的意義detach
- 從性能觀點?
我看了這個相關的answer,但它專注於如何使用detach。
試圖理解你的前幾句話 - 不會使用'detach'並在'route'內部調用'Await.result'結果一次只處理一個HTTP請求,即同時由web應用程序處理? –
https://groups.google.com/forum/#!topic/spray-user/ml3auuHoq_4 –
這裏也要回答:是的,的確如此。如果沒有使用異步指令,阻塞路由結構將阻止異步路由處理。 – jrudolph