Seite 1 von 1

Server bei Änderungen automatisch neustarten

Verfasst: Montag 18. Oktober 2010, 11:45
von deamon
Hallo,

ich bastele gerade an einem kleinen REST-Framework und möchte den Entwicklungsserver automatisch neustarten, wenn sich Code der Anwendung ändert. Dazu habe ich mir Folgendes überlegt:

1. Man startet einen Prozess als Master.
2. Der Master startet einen Subprozess mit dem eigentlichen Server (WSGI-Server).
3. Der Subprozess überwacht die Dateien der geladenen Module in einem eigenen Thread auf Änderungen.
4. Wenn sich eine Datei ändert, beendet der sich der Suprozess und gibt einen Rückgabewerte != 0 zurück.
5. Der Master startet den Subprozess neu, wodurch alle Python-Module neu geladen werden.

Geht das einfach oder eleganter? Oder gibt es das schon fertig?

Re: Server bei Änderungen automatisch neustarten

Verfasst: Montag 18. Oktober 2010, 12:24
von lunar
@daemon: Wirf doch einen Blick in den Quelltext der Webrahmenwerke und Webbibliotheken, die eine solche Funktionalität bereits implementieren (z.B. bottle, werkzeug oder django). Möglicherweise kannst Du die entsprechenden Teile auch einfach in Dein Projekt übernehmen, die Lizenzen dieser Rahmenwerke und Bibliotheken sind ja recht liberal.

Re: Server bei Änderungen automatisch neustarten

Verfasst: Mittwoch 20. Oktober 2010, 17:23
von deamon
Hallo lunar,

danke für den Hinweis. Ich bin zwar noch nicht weiter gekommen, aber zumindest ein paar Beispiele habe ich schon mal gefunden, die ich hier in Form von Links für die Nachwelt und mich dokumentiere:

* http://bottle.paws.de/docs/dev/tutorial ... -reloading
* http://code.djangoproject.com/browser/d ... oreload.py
* http://bitbucket.org/ianb/pastescript/s ... .py#cl-423