Sto cercando di servire richieste a lungo termine usando gunicorn e i suoi dipendenti asincroni ma non riesco a trovare alcun esempio che possa arrivare a lavorare. Ho usato l'esempio here ma ottimizzato per aggiungere un ritardo falso (sonno per 5s) prima di ritornare la risposta:gunicorn non elabora simultaneamente richieste simultanee
def app(environ, start_response):
data = "Hello, World!\n"
start_response("200 OK", [
("Content-Type", "text/plain"),
("Content-Length", str(len(data)))
])
time.sleep(5)
return iter([data])
Poi corro così gunicorn:
gunicorn -w 4 myapp:app -k gevent
Quando apro due del browser schede e digitare http://127.0.0.1:8000/
in entrambi e inviare le richieste quasi allo stesso tempo, le richieste sembrano essere elaborate sequenzialmente - una restituisce dopo 5 secondi e l'altra restituisce dopo un ulteriore 5 secondi.
D. Penso che il sonno non sia amichevole? Ma ci sono 4 lavoratori e quindi anche se il tipo di lavoratore fosse "sincronizzato" due lavoratori dovrebbero gestire due richieste contemporaneamente?
Hai trovato la soluzione? –
Scusa, non l'ho fatto. – swoop81