Nehmen wir an, wir eine WSGI App haben, die auf einer ereignisgesteuerten Single-Threaded-Server gehostet wird:Eventlet wsgi Server und zeitraubende Operationen in Anfragen
from eventlet import wsgi
import eventlet
def app(env, start_response):
# IO opeartions here
...
wsgi.server(eventlet.listen(('', 8090)), app)
Innerhalb App-Funktion, einige E/A-Operationen, als Lese-Dateien oder DB-Zugriff muss durchgeführt werden.
Wenn wir nun IO-Vorgänge in der App ausführen, wird der Server effektiv blockiert und kann keine anderen Clients bedienen.
F: Was sind mögliche Lösungen für dieses Problem? Wie kann ich erreichen, dass der Eventlet wsgi Server zeitraubende Operationen ausführt, ohne blockiert zu werden?