m2wsgi

软件截图:
m2wsgi
软件详细信息:
版本: 0.5.2
上传日期: 15 Apr 15
开发: Ryan Kelly
许可: 免费
人气: 8

Rating: nan/5 (Total Votes: 0)

m2wsgi是一个Python模块,它提供了一个WSGI网关处理程序Mongrel2 Web服务器,允许在Mongrel2易于部署的Python应用程序 你也可以找到它的支持类发展非WSGI处理Python中非常有用。

命令行使用

使用这个包最简单的方式是一个命令行启动:
蟒蛇-m m2wsgi dotted.app.name TCP://127.0.0.1:9999
这将连接到Mongrel2指定的请求的端口上,并开始通过指定的应用程序WSGI将它们处理请求。默认情况下,你会得到一个工作线程处理所有的请求;增加像这样的线程数:
蟒蛇-m m2wsgi --num线程= 5 dotted.app.name TCP://127.0.0.1:9999
或者,如果线程是不是你的东西,用eventlet各地洗牌位,如下所示:
蟒蛇-m m2wsgi --io = eventlet dotted.app.name TCP://127.0.0.1:9999
我感兴趣的是增加了对其他IO模块,如GEVENT支持;贡献的欢迎。
编程用法
如果你有更复杂的需求,你可以使用m2wsgi从你的应用程序中。主类是“WSGIHandler”它提供了一个简单的服务器接口。上面的命令行用法相当于是:
从m2wsgi.base进口WSGIHandler
处理器= WSGIHandler(my_wsgi_app,“TCP://127.0.0.1:9999”)
handler.serve()
为了更好地控制您的处理程序和Mongrel2之间的连接,创建自己的Connection对象:
从m2wsgi.base进口WSGIHandler,连接
CONN =连接(send_spec =“TCP://127.0.0.1:9999”
  recv_spec =“TCP://127.0.0.1:9999”
  send_ident =“9a5eee79-dbd5-4f33-8fd0-69b304c6035a”)
处理器= WSGIHandler(my_wsgi_app,CONN)
handler.serve()
我们不是已经有其中之一?
实际上有几个:
  * https://github.com/berry/Mongrel2-WSGI-Handler
  * https://bitbucket.org/dholth/mongrel2_wsgi
他们没有完全满足我的需求。特别是,这包有透明的支持:
  *分块响应编码
  *“异步上传”大的请求体
  *可插拔的IO后端(如eventlet,GEVENT)
它也从地上爬起来专门为Mongrel2设计。这意味着它得到了许多功能是免费的,并且代码更简单和更轻的结果。
例如,有一个线程池,并请求队列,你可能会发现如没有明确的管理在CherryPy的服务器。相反,你只需启动尽可能多的线程,因为你需要,让他们都连接到同一个处理器插槽,和mongrel2(通过ZMQ)将自动负载平衡的要求给他们。
同样,有一个为当代码改变重装没有明确的支持。杀了老处理器,并开始了一个新的。如果你使用固定的处理程序的UUID那么ZMQ将确保交接发生摆好

要求

  • 在Python中

限制

  • 在运行时多线程,CTRL-C不完全退出进程。似乎是后台线程陷入阻塞的recv()。
  • 在该ZMQ负载平衡算法是贪婪的循环,这是不理想的。例如,它可以安排在同一个线程一个缓慢的几个快捷的请求,使它们等待,即使其他线程变得可用。我工作的一个ZMQ适配器,可以做更好的东西。

显影剂的其他软件 Ryan Kelly

extprot
extprot

28 Feb 15

PyEnchant
PyEnchant

28 Feb 15

django-supervisor
django-supervisor

20 Feb 15

promise
promise

28 Feb 15

意见 m2wsgi

评论没有发现
添加评论
打开图片!