Gunicorn nicht Neuladen einer Django-Anwendung
Ich bin immer inkonsistent code-nachladen Verhalten, mit Django 1.3 Anwendung und gunicorn 0.12.1, die innerhalb einer virtualenv.
Gunicorn nicht neu laden meine Bewerbung richtig, sogar mit einem Neustart des spezifischen gunicorn Prozess-PID. Wenn ich eine grundlegende runserver
(durch Django, über den manage.py
Befehl) dies ist nicht ein Problem.
Wenn ich zu entfernen und neu erstellen meine virtualenv, gunicorn läuft wie erwartet mit dem neuen code.
Gibt es eine Python-cache oder sowas? Ich habe auch versucht, entfernen Sie alle *.pyc
- Dateien.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Außerdem haben Sie einen Blick auf einige der Notizen am unteren Rand des folgenden Beitrag.
Lief ich in Variationen von diesem problem -- wie empfohlen in dem verlinkten Artikel von Herrn Pokomy, die Tötung des gunicorn master-Prozess mit einem
HUP
signal scheint den trick tun.Kann man auto-nachladen auf Datei, speichern leicht, wenn Sie mit der python -
watchdog
- Modul; die Konfiguration ist eigentlich selbsterklärend, deshalb hier ein Schnipsel aus meiner Entwicklung supervisord.conf-Datei:(N. B. ich die Schrägstriche, die Probe vor der Zeilenumbrüche, die nicht tatsächlich in der conf-Datei habe ich eingefügt, diese Zeilenumbrüche zur Lesbarkeit; ich bin nicht sicher, ob das funktioniert IRL)
Das erste Programm ist die gunicorn Prozess, dem ich in einem einzigen thread, während der Entwicklung, um die Werkzeug-debugger. Der zweite Teil ist der interessante Teil: dieser Befehl sagt, "töte den Prozess festgelegt, indem die gunicorn PID-Datei, wenn es eine änderung in einer Datei in diesem Verzeichnis-Baum, wenn die Datei-suffix mit einer aus dieser Liste".
Funktioniert wie ein Charme für viele, einschließlich mich. Wenn Sie nicht wissen,
watchdog
ist sehr nützlich und ist einen Blick Wert, in seinem eigenen Recht.