Dato:
val system = ActorSystem("test")
val http = IO(Http)(system)
def fetch = http ! HttpRequest(GET, "http://0.0.0.0:8080/loadtest")
Se dovessi fare:
(0 to 25).foreach(_ => fetch)
Mi aspetto che il codice spari 25 richieste asincrone. Quello che succede invece è quello quattro le richieste vengono messe fuori servizio. Aspettano una risposta. Quando viene ricevuta la risposta a tutti e 4, ne vengono inviati altri quattro fino a quando non vengono elaborati tutti e 25.
Ho provato a modificare la configurazione di Spray per creare un dispatcher personalizzato, ma questo non ha avuto alcun effetto ...
outbound-http-dispatcher {
type = Dispatcher
executor = "thread-pool-executor"
throughput = 250
}
spray.can {
host-connector-dispatcher = outbound-http-dispatcher
manager-dispatcher = outbound-http-dispatcher
}
Come posso configurare Akka / Spray per inviare tutte e 25 le richieste in modo asincrono?
Utilizzo: Akka 2.2.3, Spray 1.2.0
risposte:
2 per risposta № 1Stai eseguendo l'impostazione di configurazione massima delle connessioni per il connettore host in spray (è 4 per impostazione predefinita).
Ecco come lo cambi:
spray.can.host-connector.max-connections=25