并行执行方法



我有一个向我的spray-can 1.3.1服务器发送多个请求的应用程序。

FireBug告诉我,这些请求是并行触发的。

但是,在服务器上,这些请求是严格串行处理的。

我想我需要以某种方式配置喷雾服务器以并行处理多个请求 - 但是如何呢?

服务器是这样启动的:

object Server extends SimpleRoutingApp{  
  def main(args: Array[String]): Unit = {
    implicit val system = ActorSystem()
    startServer("0.0.0.0", port = 8080) {
      get{
        pathSingleSlash {
          complete{
            HttpEntity(
              MediaTypes.`text/html`,
              Template.txt
            )
....

由于 Spray 路由在 actor 中是同步的,因此您需要执行其他操作以使其并行处理多个请求。

  1. 使用 Detach 指令:此指令将生成一个新的参与者来处理该请求。
  2. 使用每个请求的参与者

您还可以在SO中找到有关它的其他链接。

最新更新