并行执行方法

时间:2016-04-22 12:15:45

标签: scala spray spray-routing

我有一个应用程序向我的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
            )
....

1 个答案:

答案 0 :(得分:2)

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

  1. 使用Detach directive:该指令将生成一个新的actor来处理该请求。
  2. 使用actor-per-request
  3. 您也可以在SO中找到other links