我在开发机器上使用Lighttpd + FastCGI + Django。我通过manage.py的命令行选项启动FastCGI服务器。
问题是我经常对源进行更改,我需要让FastCGI自动获取这些更改,就像“./manage.py runserver”一样。
是否有针对该解决方案的命令行选项或任何其他解决方案?
答案 0 :(得分:2)
您是否查看过执行监控的manage.py的runserver部分中的代码?我认为没有理由不能将该代码复制粘贴到自定义manage.py脚本中,并将其设置为在检测到更改时运行lighty restart命令。
或者,您可以运行一个单独的python程序,使用像pyinotify这样的包重启:
答案 1 :(得分:0)
我想知道是否有人让这个工作?我尝试使用django的autoreload.py实现重装机制,不幸的是,当fork出现时我得到错误:
django / core / servers / fastcgi.py“,第180行,在runfastcgi中 WSGIServer(WSGIHandler(),** wsgi_opts).run() 文件“build / bdist.freebsd-6.4-RELEASE-p9-amd64 / egg / flup / server / fcgi_fork.py”,第140行,运行中 文件“build / bdist.freebsd-6.4-RELEASE-p9-amd64 / egg / flup / server / preforkserver.py”,第119行,运行中 在_installSignalHandlers中输入文件“build / bdist.freebsd-6.4-RELEASE-p9-amd64 / egg / flup / server / preforkserver.py”,第450行 ValueError:signal仅适用于主线程
我理想的设置是能够重新加载/杀死我的fcgi进程并在每次检测到代码更改后启动一个新进程,类似于django对内部服务器的处理方式。我也尝试从autoreload.py中删除会遇到此错误的线程,但它似乎没有正确运行服务器(仍在调查)。
也许有人在django的settings.py文件中尝试过CherryPies autoreload.py?