Capisco che il tornado sia un server a thread singolo e non bloccante, quindi le richieste vengono gestite in modo sequenziale (tranne quando si utilizza l'approccio basato sugli eventi per il funzionamento IO).La concorrenza è possibile nel tornado?
Esiste un modo per elaborare più richieste parallele nel tornado per l'esecuzione normale (non-IO). Non è possibile eseguire il fork di più processi poiché ho bisogno di uno spazio di memoria comune tra le richieste.
Se non è possibile, suggerire a me altri server python in grado di gestire la richiesta parallela e supportare anche wsgi.
Grazie per le vostre risposte. Non sono a conoscenza di GIL. Quindi, in nessun modo posso fare il processo parallelo usando i thread in CPython e devo andare con il multi-processo. – Adhi
Puoi eseguire l'elaborazione parallela in Python, ma non utilizzerai tutte le tue risorse dato che utilizzerai solo il processo Python con 1 CPU pr quando esegui il codice Python. Quindi puoi usare i thread per la concorrenza, ma c'è un certo limite ai guadagni di prestazioni disponibili. Ma molte volte Tornado aspetterà l'I/O, quindi c'è molto da guadagnare aggiungendo il threading ad esempio. –
zmqweb è stato estratto da PyZMQ nel proprio progetto: https://github.com/ellisonbg/zmqweb –