为什么Play Framework按顺序而不是异步处理我的请求?

时间:2015-09-11 17:15:42

标签: scala playframework netty threadpool future

我正在尝试了解异步操作如何在Play中运行。 文档告诉我们“Play以异步,非阻塞的方式处理每个请求”。假设我们在Application控制器中有这样的示例操作:

def index = Action.async {
  Future {
    blocking{
      println("start at " + (new DateTime).toString("MM-dd-yyyy HH:mm:ss"))
      Thread.sleep(10000) // 10 seconds
      println("end at " + (new DateTime).toString("MM-dd-yyyy HH:mm:ss"))
      Ok("Done")
    }
  }
}

我制作“激活器运行”,然后在浏览器中打开两个选项卡,并在每个选项卡中发出请求。 在我的控制台中,我看到这样的事情:

start at 09-11-2015 18:33:34
end at 09-11-2015 18:33:44
start at 09-11-2015 18:33:44
end at 09-11-2015 18:33:54

因此,我的第二个请求的处理仅在第一个请求处理结束后才开始。

我已尝试按this article中所述配置线程池,但结果未更改。

为什么Play按顺序而不是并行处理我的请求?

0 个答案:

没有答案