lighttpd django fastcgi和自动重装?

时间:2010-12-15 02:54:18

标签: python django fastcgi lighttpd

我想知道是否有人曾经使用此设置自动重新加载fcgi?这个工作?我尝试使用django的autoreload.py实现重载机制(将其复制到我自己的位置并调用autoreload.main(start),不幸的是,当fork出现时我得到错误:

django/core/servers/fastcgi.py", line 180, 
  in runfastcgi WSGIServer(WSGIHandler(), **wsgi_opts).run() 
     File "build/bdist.freebsd-6.4-RELEASE-p9-amd64/egg/flup/server/fcgi_fork.py", line 140, 
  in run 
     File "build/bdist.freebsd-6.4-RELEASE-p9-amd64/egg/flup/server/preforkserver.py", line 119, 
  in run 
     File "build/bdist.freebsd-6.4-RELEASE-p9-amd64/egg/flup/server/preforkserver.py", line 450, 
  in _installSignalHandlers ValueError: signal only works in main thread

我理想的设置是能够重新加载/杀死我的fcgi进程并在每次检测到代码更改后启动一个新进程,类似于django对内部服务器的处理方式。我也尝试从autoreload.py中删除会遇到此错误的线程,但它似乎没有正确运行服务器(仍在调查)。

也许有人在django的settings.py文件中尝试过CherryPies autoreload.py?

1 个答案:

答案 0 :(得分:0)

我使用这种技术让它工作: http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode 使用监视器脚本,在我加载fastcgi进程之前运行它以及来自supervisord的一些帮助使这个工作。