2009-09-12 16 views
0

J'utilise Lighttpd + FastCGI + Django sur une machine de développement. Je lance le serveur FastCGI via l'option de ligne de commande de manage.py.Lighttpd, FastCGI, Django - comment redémarrer automatiquement?

Le problème est que je modifie assez souvent les sources et que j'ai besoin que FastCGI prenne ces changements automatiquement, tout comme "./manage.py runserver".

Y at-il une option de ligne de commande pour cela, peut-être, ou d'autres solutions?

Répondre

2

Avez-vous regardé le code dans la partie runserver de manage.py qui fait la surveillance? Je ne vois pas pourquoi vous ne pourriez pas simplement copier-coller ce code dans un script manage.py personnalisé et le configurer pour exécuter la commande de redémarrage lighty lorsque des modifications ont été détectées.

Alternativement, vous pouvez exécuter un programme Python séparé qui a fait le redémarrage en utilisant un paquet comme pyinotify:

http://trac.dbzteam.org/pyinotify

0

Je me demande si quelqu'un a jamais eu que cela fonctionne? J'ai essayé la mise en œuvre d'un mécanisme de recharge à l'aide de autoreload.py de django, malheureusement, je reçois des erreurs lorsque la fourche se produit comme:

django/core/serveurs/fastcgi.py », ligne 180, dans runfastcgi WSGIServer (WSGIHandler() , ** wsgi_opts) .run() Fichier "build/bdist.freebsd-6.4-RELEASE-p9-amd64/oeuf/flup/serveur/fcgi_fork.py", ligne 140, dans la course Fichier "build/bdist.freebsd -6.4-RELEASE-p9-amd64/oeuf/flup/serveur/preforkserver.py ", ligne 119, dans l'exécution Fichier" build/bdist.freebsd-6.4-RELEASE-p9-amd64/oeuf/flup/serveur/preforkserver. py ", ligne 450, dans _installSignalHandlers ValueError: le signal ne fonctionne que dans le fil principal

Mon ide al setup serait de pouvoir recharger/tuer mon processus fcgi et en commencer un nouveau après chaque changement de code, similaire à la façon dont django le fait avec son serveur interne. J'ai également essayé d'enlever le threading de autoreload.py qui aurait passé cette erreur, mais il ne semble pas courir le serveur correctement (enquêtant toujours cela).

Peut-être que quelqu'un a essayé CherryPies autoreload.py dans le fichier settings.py pour django?