Tornado底层学习 (1) — tornado ioloop start 的过程

写在分享前:
基于 tornado 开发 http 服务已经 3个月了, 通过 F2E.im 项目模仿, 也开始重新
重写整个业务代码(现成的开源代码并不适用复杂的使用场景, 数据库和缓存的
模块就需要使用新的模块组件), 在这个过渡阶段中, 也遇到诸如
tornado-restful 封装的库在 tornado.gen.coroutine 搭配并不成功的坑, 因此
有必要在使用第三方开源库时, 理解 tornado 底层的代码, 以便修改第三方源码
或者做代码结构调整, 合理开发. 在 Write Less, Do More 之前, 学会
Read and Appreciate Other’s work.

每一个 tornado 应用都会把 tornado ioloop 导入到代码中, 通过 ioloop 事件触发
机制, 处理 http request, 或者其他的协议的连接消息. tornado 在 Linux 系统中优先
使用 epoll 的封装, 基于 epoll 做事件处理.

Continue reading