GunicornPythonUbuntu

Gunicorn als Python-Entwicklungsumgebung produktiv nutzten – automatische Aktualisierung der App nach Codeänderungen

image_print

Standartmäßig muss man Gunicorn nach jeder Änderung des Python-Codes neu starten, das ist bei vielen kleinen Änderungen die nicht auf einen Schlag erfolgen sehr zeitaufwendig. Alternativ kann man bspw. die interne Flask Entwicklungsumgebung nutzten die autoamtische Aktualisierung der App standartmäßig ermöglicht, Problem dabei ist, dass bspw. Mehrfachdatenbankzugriffe hiermit standartmäßig nicht funktionieren.

Mit dem Programm Watchdog und einem kleinen Batchscript lässt sich das Problem umschiffen, das angegebene Verzeichnis bemerkt Veränderungen an Python Dateien und startet daraufhin Gunicorn neu:

pip install watchdog

nano watchdog_gunicorn.sh

#!/bin/bash

# Gunicorn starten
cd /DEVELOP
gunicorn -w 4 -b 0.0.0.0:8000 app:app

# Überwachungsverzeichnis festlegen (Ändern Sie 'your_code_directory' entsprechend)
WATCH_DIR="/DEVELOP"

while true; do
    # Änderungen in Ihrem Codeverzeichnis mit 'watchmedo' überwachen
    watchmedo auto-restart --recursive --directory "$WATCH_DIR" --pattern="*.py" -- gunicorn -w 4 -b 0.0.0.0:8000 app:>
done

chmod +x watchdog_gunicorn.sh

./watchdog_gunicorn.sh

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert