2017-04-30 1 views
1

Je viens d'arrière-plan Java et absolument nouveau chez Python.Comment utiliser Tornado avec un pool de threads?

J'ai besoin d'écrire un serveur web simple pour gérer plusieurs demandes simultanées. Le traitement de la requête est principalement lié au processeur et la gestion d'une seule requête peut prendre entre 100 et 1000 ms. Le serveur fonctionnera sur une machine multicœur.

On m'a conseillé d'utiliser Tornado avec un pool de threads. Avez-vous un exemple?

+0

un coup d'oeil à ceci: https://gist.github.com/methane/2185380 – Atsch

+0

Merci pour le lien. Cependant, j'ai probablement besoin de plusieurs _processes_ plutôt que des threads comme cela est expliqué dans la réponse. – Michael

Répondre

2

Si le traitement d'une seule requête est principalement lié au processeur, un pool de threads n'aidera pas. Le verrouillage d'interpréteur global (GIL) de Python empêche plus d'un thread d'exécuter Python dans un processus Python. Au lieu de cela, démarrez un processus Tornado par cœur.

Follow this example from the Tornado docs:

server = HTTPServer(app) 
server.bind(8888) 
server.start(0) # Forks multiple sub-processes 
IOLoop.current().start()