Próbuję służyć długo działającym żądaniom za pomocą gunicorn i jego asynchronicznych pracowników, ale nie mogę znaleźć żadnych przykładów, które mogę dostać do pracy. Użyłem przykład here ale manipulowane, aby dodać fałszywy opóźnienie (uśpienia do 5s) przed powrotem odpowiedź:gunicorn nie przetwarza jednoczesnych żądań jednocześnie
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])
Potem biegnę gunicorn tak:
gunicorn -w 4 myapp:app -k gevent
Kiedy otwierają dwa przeglądarkę zakładki i wpisz http://127.0.0.1:8000/
w obu z nich i wysyłaj żądania prawie w tym samym czasie, żądania wydają się przetwarzane po kolei - jeden powraca po 5 sekundach, a drugi wraca po dalej 5 sekund.
P. Zgaduję, że sen nie jest przyjazny dla geodetów? Ale jest 4 pracowników i nawet jeśli typ pracownika był "zsynchronizowany", dwóch pracowników powinno obsługiwać jednocześnie dwa wnioski?
Czy znalazłeś rozwiązanie? –
Przepraszam, ja nie. – swoop81