【问题标题】:How to make Python / Nginx / FastCGI automatically recompile code when it is updated/changed?如何使 Python / Nginx / FastCGI 在更新/更改时自动重新编译代码?
【发布时间】:2011-07-18 16:10:36
【问题描述】:

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

【问题讨论】:

  • 一般来说,你不想在生产环境中这样做,因为你必须统计所有使用的文件,这通常会减慢一切。

标签: python django nginx fastcgi


【解决方案1】:

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

如果你想要一些能很好地与 nginx、Django 和 wsgi 应用程序一起工作的东西,请查看Spawning 作为你的 wsgi 服务器。它的代码重新加载方法几乎是优雅的。

它有很好的文档,有据可查的请求处理模型,而且它可以正常工作,这使得配置起来很容易。从现在开始,您需要不到五分钟的时间让您的 Django 实例在 Spawning 上运行。这是另一个 topical blog 让您的果汁运行起来。

【讨论】:

  • Apache/mod_wsgi 文档中描述的代码监控是针对 mod_wsgi 的,并且可能无法很好地工作,或者根本无法与其他托管机制一起工作。
  • 谢谢,我去看看。
【解决方案2】:

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

您可以只运行脚本(我将对其进行一些修改),每次您编辑代码时,它都会优雅地重新启动所有内容,而不会断开连接。

【讨论】:

    猜你喜欢
    • 2014-05-03
    • 2012-07-05
    • 2014-08-29
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 2015-12-09
    • 1970-01-01
    • 2012-04-15
    相关资源
    最近更新 更多