实现服务器

有几个类可以通过GEvent简化服务器实现。它们都共享一个类似的接口,继承自 BaseServer ::

def handle(socket, address):
     print('new connection!')

server = StreamServer(('127.0.0.1', 1234), handle) # creates a new server
server.start() # start accepting new connections

此时,接受的任何新连接 127.0.0.1:1234 会产生新的 gevent.Greenlet 产卵运行 手柄 功能。停止服务器使用 BaseServer.stop() 方法。

如果发生 gevent.pywsgi.WSGIServer手柄 必须是可调用的wsgi应用程序。

通过传递 gevent.pool.Pool 实例。此外,通过游泳池 BaseServer.stop() 终止正在进行的请求的方法::

pool = Pool(10000) # do not accept more than 10000 connections
server = StreamServer(('127.0.0.1', 1234), handle, spawn=pool)
server.serve_forever()

小技巧

如果不想限制并发性,但是 do 要能够终止未处理的请求,请使用大小为的池 None .

这个 BaseServer.serve_forever() 方法调用 BaseServer.start() 然后等待直到中断或服务器停止。

这个 gevent.pywsgi 模块包含 PEP 3333 WSGI server . 此外, gunicorn 是支持GEvent的独立服务器。

API引用

实例

更多 examples 可供选择:

Next page: 名称解析(DNS)