La solución de @ sajid-siddiqi es técnicamente correcta, pero tenga en cuenta que el servidor WSGI incorporado en Werkzeug (que está empaquetado en Flask y para lo que se usa app.run()
) es solo de un solo subproceso.
Instale un servidor WSGI para poder manejar el comportamiento de subprocesos múltiples. Investigué un montón sobre el rendimiento de varios servidores WSGI . Sus necesidades pueden variar, pero si todo lo que está usando es Flask , le recomendaría uno de los siguientes servidores web.
Actualización (2020-07-25): Parece que gevent comenzó a admitir python3 hace 5 años, poco después de que comenté que no era así, por lo que puede usar gevent ahora.
gevent
Puede instalar gevent a través de pip con el comando pip install gevent
o pip3 con el comando pip3 install gevent
. Las instrucciones sobre cómo modificar su código en consecuencia están aquí: https://flask.palletsprojects.com/en/1.1.x/deploying/wsgi-standalone/#gevent
yo
gevent es mejor, pero de todos los puntos de referencia que he analizado que involucran pruebas en el mundo real, meinheld parece ser el servidor WSGI más sencillo y simplista . (También puede echar un vistazo a uWSGI si no le importa más configuración).
También puede instalar meinheld a través de pip3 con el comando pip3 install meinheld
. A partir de ahí, mire la muestra proporcionada en la fuente de meinheld para integrar Flask : https://github.com/mopemope/meinheld/blob/master/example/flask_sample.py
* NOTA: Por mi uso de PyCharm , la línea se from meinheld import server
resalta como un error, pero el servidor se ejecutará, por lo que puede ignorar el error.