Lighttpd, FastCGI, Django - wie automatisch neu gestartet werden?
Frage
Ich bin mit Lighttpd + FastCGI + Django auf einer Dev-Maschine. Ich beginne FastCGI-Server über die Befehlszeilenoption des manage.py.
Das Problem ist, dass ich sehr oft auf Quellen Änderungen tun und ich brauche FastCGI zu bekommen diese Änderungen automatisch zu holen, so wie „./manage.py runserver“ der Fall ist.
Gibt es eine Befehlszeilenoption für das, vielleicht, oder andere Lösungen?
Lösung
Haben Sie sich den Code in das runserver Teil manage.py, die die Überwachung tut? Ich sehe keinen Grund, warum Sie konnte nicht nur diesen Code in einem benutzerdefinierten Skript manage.py copy-paste und setzen sie den lighty Neustart Befehl ausgeführt werden soll, wenn Änderungen erkannt wurden.
Alternativ können Sie ein separates Python-Programm ausführen, das den Neustart mit einem Paket wie pyinotify tat:
Andere Tipps
Ich frage mich, ob jemand jemals diese Arbeit bekommen hat? Ich habe versucht, einen Reload Mechanismus Umsetzung Djangos autoreload.py verwenden, leider bekomme ich Fehler, wenn die Gabel auftritt wie:
django / core / Server / fastcgi.py“, Linie 180, in runfastcgi WSGIServer (WSGIHandler () ** wsgi_opts) .run () Die Datei "build / bdist.freebsd-6.4-RELEASE-P9-amd64 / Ei / flup / server / fcgi_fork.py", Linie 140, in Lauf Die Datei "build / bdist.freebsd-6.4-RELEASE-P9-amd64 / Ei / flup / server / preforkserver.py", Linie 119, in Lauf Die Datei "Code / bdist.freebsd-6,4-RELEASE-P9-amd64 / Ei / flup / server / preforkserver.py", Leitung 450, in _installSignalHandlers Valueerror: Signal funktioniert nur im Hauptthread
Meine ideale Setup wäre in der Lage sein, meinen fcgi Prozess neu zu laden / töten und einen neuen nach jedem Mal, wenn eine Codeänderung erkannt wird beginnen, ähnlich wie django tut dies mit ihrem internen Server. Ich habe auch versucht das Einfädeln von autoreload.py zu entfernen, die nach diesem Fehler bekommen würde, aber es scheint nicht, den Server ordnungsgemäß ausgeführt werden (immer noch, dass die Untersuchung).
Vielleicht hat jemand versucht hat, CherryPies autoreload.py in der settings.py Datei für django?