使用pastedeploy和gevent运行wsgi应用程序。
pastegevent的Python项目详细描述
使用pastegevent包,您可以在gevent的基础上运行wsgi应用程序 高性能http服务器。
配置
只需使用egg:pastegevent\gevent作为服务器的use指令值 配置部分:
[server:main] use = egg:pastegevent#gevent
如果需要将Event粘贴到Monkey Patch stdlib模块,请使用 egg:pastegevent“gevent”已修补。这将猴子补丁所有,除了dns 子系统:
[server:main] use = egg:pastegevent#gevent_patched
但由于无法重新初始化libevent的dns,因此不执行dns修补。 分叉后的子系统。
使用evdns进行异步dns解析
如果您的应用程序严重依赖于异步dns解析,那么 仍然需要修补stdlib才能使用evdns解析域名。幸运的是 有几个步骤可以解决evdns初始化的问题。
首先要做的是确保之前不进行任何网络交互 服务器启动,因此libevent(尤其是它的dns子系统)将不会 在守护之前初始化。这意味着wsgi中没有网络代码 应用程序工厂。
然后您应该将服务器配置为使用未修补版本的gevent服务器 工厂:
[server:main] use = egg:pastegevent#gevent
自己在应用程序工厂修补dns:
def app(global_config, **settings): from gevent.monkey import patch_all patch_all() return wsgi_app
现在您的应用程序可以利用异步dns解析的优势。