- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 mod_wsgi 在 Apache2 中提供 CherryPy 应用程序对象。从用户的角度来看,一切似乎都很好,这意味着他/她实际上可以访问应用程序并按预期使用它。但我面临的问题是由于新部署而导致代码更改的信号。
这是 Apache 中的应用程序配置:
WSGIDaemonProcess app-name user=someuser group=somegroup processes=4 maximum-requests=1000 inactivity-timeout=3600 umask=0007 python-path="path-to-sources:path-to-python-site-packages"
WSGIScriptAlias /app-url /location/of/wsgi/start/script/wsgi.py
<Directory "/location/or/sources">
WSGIProcessGroup somename
</Directory>
wsgi 启动脚本包含以下内容:
import sys
import root.index
sys.stdout = sys.stderr
application = root.index.get_wsgi_app()
#which return an object of cherrypy.Application
CherryPy 在“生产模式”下运行,这意味着:
'engine.autoreload_on': False,
'checker.on': False,
'tools.log_headers.on': False,
'request.show_tracebacks': False,
'request.show_mismatched_params': False,
'log.screen': False,
之后,我手动覆盖 engine.autoreload_on 并将其设置为 True,因为我希望应用程序接受代码更改并重新启动,但这并没有达到预期的效果。我知道触摸 wsgi 脚本文件或重新启动 Apache 应该会产生我想要的结果,但是 CherryPy 应该自己检测这些更改并相应地重新启动,就像在运行本地开发服务器时一样。据我所知,唯一的区别是我在本地调用 cherrypy.tree.mount,在生产环境中我调用 cherrypy.Application。
底线:如何让我的生产应用程序接收代码更改并重新加载?
最佳答案
CherryPy 与任何其他 WSGI 框架一样具有请求处理程序(和 WSGI 应用程序)。但它也有一个引擎,可以处理在请求本身之外发生的所有事情。当你独立运行时,这包括很多进程管理:PID、守护进程等。当你在 Apache 中运行时,很多事情都是为你完成的,看起来你不需要运行引擎。不对。您仍然应该至少运行它来处理信号、记录任何后台任务,以及可能将代码 Hook 到线程启动和停止中。在这种情况下,Autoreloader 依赖于正在运行的引擎。参见 http://docs.cherrypy.org/stable/concepts/engine.html有关 Engine 对象的更多信息和 http://tools.cherrypy.org/wiki/ModWSGI一些示例代码。
关于python - 使用 Mod_WSGI 在 Apache 后面重新加载 CherryPy 应用程序的源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13837631/
假设我有一些代码(使用 CherryPy),如下所示: import cherrypy class Names: def index(self, name=None): ret
{% if bCat2 == True %} True {% else %} False 返回 False即使 bCat2是 True . 谢谢, 安德鲁 最佳答案 选项 1:最常见的
我这里有一个Python程序。它使用 CherryPy 创建服务器。 # coding:utf-8 import os.path import cherrypy from app import app
我有一个现有的cherrypy应用程序,但我想知道是否可以在gevent wsgi服务器上运行它。我想我可以,但我无法访问 Linux 服务器来测试 gevent,并且无法让它在我的 Mac 上运行。
当我使用cherrypy.tree.mount时,我无法从系统连接到在docker容器中运行的CherryPy服务器,但是当我执行cherrypy.quickstart()时,我可以连接至服务器。对带
我开始学樱桃,但是遇到了路障。我无法获取静态文件来挽救生命。我正在搜索404。The path '/static' was not found.,但是尚未找到解决方案。我要做的就是在http://lo
运行 CherryPy 应用程序时,它会发送服务器名称标签,例如 CherryPy/version。 是否可以在不修改 CherryPy 的情况下从应用程序重命名/覆盖它,以便它显示其他内容? 也许像
CherryPy 服务器将其错误日志写入何处?我已经安装了 CherryPy 并使用 python3.2 启动了服务器 from cherrypy import wsgiserver
我正在开发一个 django 应用程序,我使用cherrypy作为服务器。 Cherrypy 为每个页面 View 创建一个新线程。我希望能够从它们中的任何一个中访问所有这些线程(负责与 django
这个问题在这里已经有了答案: 8年前关闭。 Possible Duplicate: Using mappings in CherryPy 我如何将 url regEx(例如/data/[A-Z].tx
我知道这个问题比“如何加快我的网站的速度”要高出一个步骤,但是我到处都是由Cherrypy驱动的网站,却找不到任何电子商务网站。在开始重写当前站点之前,我们开始使用Cherrypy和jinja2作为概
我有一个cherrypy api,旨在在服务器上运行很长时间。 我有一个不可靠的客户端,它可能会因我无法控制的各种原因而终止或关闭连接。 在我的服务器 api 运行期间,我想定期检查连接状态,确保客户
这是我第一次使用 CherryPy,所以请原谅任何愚蠢的行为。 我正在尝试编写一个 RESTful API,该 API 部分处理添加/删除人员。我希望能够 GET/PUT/DELETE example
我想在不同的端口和不同的应用程序上运行 2 个cherry py 服务器。 我设法运行它们,但是如何在应用程序和服务器之间连接?我希望能够去 http://127.0.0.1:3141/ 并获取ser
有没有办法让 CherryPy 响应包含句点的 url,例如 http://some/base/path/oldscript.py ?我有许多像这样调用的旧 CGI 脚本,我正在尝试将它们整合到一个漂
使用 Cherrypy 如何制作此脚本以便任何 url 都将加载 load index.html 示例,如果使用其中任何一个,那么它们都会加载index.html页面www.mtsite.test/1
我尝试从具有 Transfer-Encoding: chunked header (没有 Content-Length)的 POST 正文中获取数据。内容类型是application/octet-st
我正在构建一个使用 CherryPy 提供 REST API 的应用程序,以及另一个执行后台工作的线程(实际上,它从串行端口读取数据)。 import cherrypy import threadin
我向 CherryPy 服务器添加了摘要身份验证,我想知道撤销用户身份验证的标准是什么,并提示他们再次输入凭据。删除 cookie 不会强制出现提示,但使用隐身或其他浏览器会强制出现提示。 我的配置:
我在启动 CherryPy 时遇到一些问题,我不明白为什么我总是收到此错误。这是版本和带有日志输出的相关代码。Python 2.7.6CherryPy 3.5.0(通过 PIP) CURRENT_DI
我是一名优秀的程序员,十分优秀!