Prima di pubblicare questo, ho letto un bel po 'di risorse online, incluso il wiki mod_wsgi, ma sono confuso su come esattamente i processi/thread di Apache interagiscano con mod_wsgi.interazione Apache + mod_wsgi
Questa è la mia attuale comprensione: Apache può essere configurato per l'esecuzione in modo tale che uno o più processi figlio possano gestire le richieste in arrivo e ciascuno di questi processi figlio può essere configurato per utilizzare uno o più thread per le richieste di servizio. Dopo ciò, le cose cominciano a diventare confuse per me. I miei dubbi sono:
- Cos'è un WSGIDaemonProcess e chi chiama effettivamente la mia app Django utilizzando l'interprete sub Python?
- Se la mia app Django è in esecuzione in una modalità in cui sono consentiti più thread in un singolo processo figlio Apache, ciò significa che più richieste potrebbero contemporaneamente accedere alla mia app nello stesso momento? In tal caso, fare qualcosa di simile all'impostazione di una variabile a livello di modulo (ad esempio quella di un ID utente) potrebbe essere sovrascritta da altre richieste parallele e portare a comportamenti non thread-safe?
- Per il caso precedente, con il blocco dell'interprete globale di Python, i thread verrebbero effettivamente eseguiti in parallelo?