Параллельное выполнение методов

У меня есть приложение, которое отправляет несколько запросов на мой сервер 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
            )
....

person Klaus Schulz    schedule 22.04.2016    source источник
comment
Как вы думаете, почему запросы обрабатываются последовательно на сервере? Какая у вас конфигурация акка?   -  person Aivean    schedule 22.04.2016


Ответы (1)


Поскольку маршрутизация Spray синхронна в акторе, вам нужно будет сделать что-то еще, чтобы он обрабатывал несколько запросов параллельно.

  1. Использование директивы Detach: эта директива новый актер для обработки этого запроса.
  2. Использование актора для каждого запроса

Вы также можете найти другие ссылки в SO об этом.

person Carlos Vilchez    schedule 23.04.2016