python - tamaño - autorecarga de gunicornio en el cambio de fuente
tamaño de un label python (3)
Si bien esta es una pregunta antigua, solo por coherencia, desde la versión 19.0 gunicorn tiene la opción de --reload
. Entonces ninguna herramienta de terceros necesitaba más.
Finalmente, migré mi entorno de desarrollo de runserver a gunicorn / nginx.
Sería conveniente replicar la función de autorrecarga de runserver en gunicorn, por lo que el servidor se reinicia automáticamente cuando cambia la fuente. De lo contrario, tengo que reiniciar el servidor manualmente con kill -HUP
.
¿Alguna forma de evitar el reinicio manual?
Una opción sería utilizar las --max-requests para limitar cada proceso generado a servir solo una solicitud agregando --max-requests 1
a las opciones de inicio. Cada nuevo proceso generado debe ver cambios en su código y en un entorno de desarrollo el tiempo de inicio adicional por solicitud debe ser insignificante.
A Bryan Helmig se le ocurrió esto y lo modifiqué para usar run_gunicorn
lugar de lanzar directamente a gunicorn
, para que sea posible cortar y pegar estos 3 comandos en un shell en la carpeta raíz del proyecto django (con su virtualenv activado):
pip install watchdog -U
watchmedo shell-command --patterns="*.py;*.html;*.css;*.js" --recursive --command=''echo "${watch_src_path}" && kill -HUP `cat gunicorn.pid`'' . &
python manage.py run_gunicorn 127.0.0.1:80 --pid=gunicorn.pid