首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flask + mod_wsgi在源代码更改时自动重新加载

问Flask + mod_wsgi在源代码更改时自动重新加载
EN

Stack Overflow用户
提问于 2012-11-23 08:35:37
回答 6查看 8.7K关注 0票数 12

有谁知道如何让mod_wsgi在任何模块发生变化时自动重新加载Flask应用程序?我试过WSGIScriptReloading On,但没成功。official documentation有点像熊..。如果没人知道,我想我会试一试。提前感谢!

此外,如果它不能因为语法错误而永久崩溃(比如Flask重装器),那就太棒了。

EN

回答 6

Stack Overflow用户

发布于 2012-11-28 21:09:02

使用mod_wsgi,WSGIScriptReloading查找.wsgi配置文件的更改,而不是代码。

我的工作流程是上传我的代码更改,然后

代码语言:javascript
复制
$ touch MyWebApp.wsgi

这使得最后修改的文件时间戳改变并且mod_wsgi重新加载代码。

你可以通过“远程”将.wsgi文件保存在本地机器上,然后再次上传它,或者我直接通过SSH来完成。

对于语法错误你无能为力,代码要么正在运行,要么没有运行,但修复加上一个touch就能让它重新运行。

如果你通过FTP工作,需要注意的一点是:确保你最后一次上传“被触摸”的.wsgi文件,否则它会尝试从错误的代码开始。

票数 19
EN

Stack Overflow用户

发布于 2012-12-13 21:36:33

我认为想要在生产环境中自动重新加载源代码是非常现实的情况。想象一下这样一个环境,在这个环境中,每个版本都部署了源代码,并且“生产”符号链接指向其中一个版本。每当你想发布一个新版本时,你只需将符号链接指向另一个路径。但是apache和mod_wsgi仍然从符号链接目录中收集文件,因此需要有一个基于时间戳、大小或w/e的重载机制。当然,一个应用程序可能不是问题,但是如果托管15-20个都在积极开发中的应用程序呢?在这种情况下,与每次重新启动apache相比,不自动重新加载源程序是一种纯粹的损失。

回到问题:如果您正在使用的框架(在本例中为flask)没有用于自动重新加载源代码的插件或工具,那么Graham和Malphas所描述的两个选项是您最好的选择。要么触发wsgi流程重新启动,要么实现监控系统。

票数 1
EN

Stack Overflow用户

发布于 2014-07-19 21:20:57

添加WSGIScriptReloading指令是正确的。Flask文档并不是100%清楚,但是Apache会检查你的.wsgi文件的变化。推荐的解决方案是只在.wsgi文件上执行触摸命令,作为发布过程的一部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13521798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档