在这个地方首先线上一个流程图
在上一篇Blog中,我们说过到了Application对象的初始化,
最后说得到Appliction,初始化完之后调用的是listen(),这是调用HTTPServer类的方法。
打开源码可以看到,HTTPServer这个类是继承TCPServer的。所以说我们首先去看看
TCPServer的定义。
class
TCPServer
(
object
):
###############################
r"""A non-blocking, single-threaded TCP server.“
1. `listen`: simple single-process::
server = TCPServer()server.listen(8888)IOLoop.instance().start()
2. `bind`/`start`: simple multi-process::
server = TCPServer()server.bind(8888)server.start(0) # Forks multiple sub-processesIOLoop.instance().start()
When using this interface, an `.IOLoop` must *not* be passedto the `TCPServer` constructor. `start` will always startthe server on the default singleton `.IOLoop`.
3. `add_sockets`: advanced multi-process::
sockets = bind_sockets(8888)tornado.process.fork_processes(0)server = TCPServer()server.add_sockets(sockets)IOLoop.instance().start()###############################
def
__init__
(
self
,
io_loop
深入解析Tornado HTTPServer

本文介绍了Tornado的HTTPServer核心模块,通过流程图展示了其处理流程。文章详细讲解了TCPServer的初始化、监听、多进程处理及HTTPServer如何继承并扩展TCPServer,特别是handle_stream()函数在HTTP请求处理中的作用。最后提到了IOLoop在Tornado中的关键角色,为后续分析HTTPResponse和HTTPRequest奠定了基础。
最低0.47元/天 解锁文章
747

被折叠的 条评论
为什么被折叠?



