2009-09-12 89 views
0

我在开发机器上使用Lighttpd + FastCGI + Django。我通过manage.py的命令行选项启动FastCGI服务器。Lighttpd,FastCGI,Django - 如何自动重启?

问题是我经常对源进行更改,我需要让FastCGI自动获取这些更改,就像“./manage.py runserver”一样。

是否有命令行选项,或许还有其他解决方案?

回答

2

你看过manage.py的runserver部分的代码吗?我发现没有理由不能将这些代码复制粘贴到自定义的manage.py脚本中,并将其设置为在检测到更改时运行lighty restart命令。

或者,您可以运行没有使用包像pyinotify中重新启动一个单独的Python程序:

http://trac.dbzteam.org/pyinotify

0

如果有人曾经得到这个工作,我不知道?我曾尝试推行重载机制使用Django的autoreload.py,不幸的是,我得到的错误,当叉发生,如:

的Django /核心/服务器/ fastcgi.py”,线路180,在runfastcgi WSGIServer(WSGIHandler() ,** wsgi_opts).run()运行 文件“build/bdist.freebsd-6.4-RELEASE-p9-amd64/egg/flup/server/fcgi_fork.py” -6.4-RELEASE-p9-amd64/egg/flup/server/preforkserver.py“,行119,运行 文件”build/bdist.freebsd-6.4-RELEASE-p9-amd64/egg/flup/server/preforkserver。 Py“,行450,在_installSignalHandlers ValueError:信号只在主线程中工作

我的ide安装程序将能够重新加载/终止我的fcgi进程,并在每次检测到代码更改后启动一个新进程,类似于django如何在内部服务器上执行此操作。我也尝试从autoreload.py中移除线程,以避免这个错误,但它似乎并没有正确运行服务器(仍在调查中)。

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