如何使Python / Nginx / FastCGI在更新/更改时自动重新编译代码?

时间:2011-03-19 08:24:23

标签: python django nginx fastcgi

所以我一直在研究我的第一个Django / Python项目,并启动并运行了我的生产服务器。我想知道是否有可能使Python / FastCGI(不确定哪个负责任务)重新编译我的代码。截至目前,当我上传更新的代码时,我需要重新启动服务器才能进行更改。我读到你可以在lighttpd中添加某种mysite.fcgi文件,所以它看到你已经更新了代码,你能为Nginx / FastCGI做同样的事吗?

2 个答案:

答案 0 :(得分:2)

对于其他对我的问题感兴趣的人......这只是一个部分解决方案,但我最终在这里找到了答案:How to gracefully restart django running fcgi behind nginx?

您可以运行脚本(我将稍微修改一下),每次编辑代码时它都会正常地重新启动所有内容而不会丢失连接。

答案 1 :(得分:1)

这是来自mod_wsgi项目的general guide,它概述了如何监视app_wsgi.py中的代码更改,并在任何模块发生更改时重新启动当前进程。您需要重新启动Python进程,因为争用模块的线程可能意味着新重新加载的模块已经过时了仍在等待重新加载的其他模块的引用。

如果你想要一些与nginx,Django和wsgi应用程序很好地兼容的东西,请查看Spawning作为你的wsgi服务器。代码重新加载的方法就像它获得的一样优雅。

它有很好的文档,记录良好的请求处理模型,它只是工作,这使得配置是如此简单。从现在起你需要不到五分钟的时间让你的Django实例在Spawning上运行。这是让你的果汁运转的另一个topical blog