Flask alternatives pour atteindre le vrai multi-threading?
J'avais mis en place un multi-thread serveur web à l'aide de la Fiole micro framework. Fondamentalement, mon serveur a une tâche de la file d'attente et un pool de threads. Par conséquent, il peut traiter plusieurs requêtes. Depuis Flacon est implémenté en Python et Python les threads ne sont pas vraiment simultanées, mon web app est un peu de lag.
Sont il existe des alternatives à la Fiole pour surmonter le problème de multi-threading?
source d'informationauteur user2586432
Vous devez vous connecter pour publier un commentaire.
Je suis tombé sur cette question et j'ai été un peu déçu que personne ne l'a souligné comment flacon (et la plupart python web apps sont signifiait à mettre en œuvre). Voir: http://flask.pocoo.org/docs/deploying/#deployment
Mon préféré option de déploiement est le super-simple Tornade qui fonctionne aussi bien sur Linux et Windows (si je suis le déploiement parallèle de sites web existants, ou même un déploiement hybride dans le cadre d'un site existant, j'ai l'habitude d'utiliser IIS Demande d'Application de Routage [ARR] comme un Reverse Proxy Tornade). J'ai aussi utilisé gevent sur les deux avec un grand succès.
Donc, si votre ballon d'application est yourapplication.py, vous pouvez créer un autre appelé tornado_web.py et de l'utiliser pour servir votre demande comme suit:
via: http://flask.pocoo.org/docs/deploying/wsgi-standalone/#tornado
Ce n'est pas le Flacon de la faute, il s'agit d'une limitation dans l'interpréteur Python, donc, le cadre que vous utilisez sera soumis.
Mais il est un excellent moyen d'éviter ce problème. Pour avoir une vraie concurrence, vous pouvez utiliser un pool de processus au lieu de threads. Le multitraitement module fournit une API qui est compatible avec le module threading, mais il crée des processus enfants pour les travailleurs. J'ai utilisé ce module pour créer des tâches en arrière-plan, Flacon applications et fonctionne très bien.