in che modo flask gestisce le richieste simultanee? [duplicare]
la mia app flask fa quanto segue: l'utente carica il file - il file viene elaborato -> flask restituisce il file
Ero curioso di sapere cosa succede se due utenti accedono simultaneamente al sito web ed eseguono la stessa operazione.
Ho usato il server selenio in combinazione con ray per eseguire una richiesta simultanea sull'app
codice in forma abbreviata
ray.init()
@ray.remote
def parallel_1():
driver = webdriver.Remote(
command_executor="http://localhost:4444/wd/hub",
desired_capabilities={
"browserName": "chrome",
})
# do task
ret_id1 = parallel_1.remote()
ret_id2 = parallel_1.remote()
ret1, ret2 = ray.get([ret_id1, ret_id2])
le funzioni di visualizzazione della fiaschetta sono semplici, niente thread o sessioni, c'è qualcosa che sta succedendo sotto il cofano di cui non sono a conoscenza? o come gestisce flask le richieste simultanee?
Risposte
Flask no. La gestione delle richieste parallele è l'attività del server Web WSGI sottostante, che invia le richieste a Flask per la gestione.
Il server di sviluppo integrato di Flask che viene richiamato con Flask.run()esecuzioni con thread per impostazione predefinita
In produzione, useresti uno dei contenitori WSGI o altre opzioni di distribuzione e lì controlli il parallelismo. Gunicorn , ad esempio, ha l' -wargomento della riga di comando che controlla il numero di processi di lavoro e -kche controlla il modo in cui funzionano questi lavoratori (processi, thread o una macchina degli eventi Tornado, tra gli altri).