并行执行方法

Parallel execution of methods

我有一个应用程序向我的 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 directive:该指令将产生一个新的 actor 来处理该请求。
  2. 使用 actor-per-request

您还可以在 SO 中找到 links