Tornado 高并发源码分析之一---启动一个web服务

Posted RobotZhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tornado 高并发源码分析之一---启动一个web服务相关的知识,希望对你有一定的参考价值。

 

前言: 启动一个tornado 服务器基本代码

 

 1 class HomeHandler(tornado.web.RequestHandler): #创建 RequesHandler 对象,处理接收到的 http 请求
 2 def get(self):
 3      entries = self.db.query("SELECT * FROM entries ORDER BY      published DESC LIMIT 5")
 4      if not entries:
 5          self.redirect("/compose")
 6          return
 7         self.render("home.html", entries=entries)
 8  
 9 class Application(tornado.web.Application): #创建 Application 对象, 定义 setting 和 URL 映射规则
10      def __init__(self):
11        handlers = [
12             (r"/", HomeHandler),
13             (r"/archive", ArchiveHandler),
14         ]
15        settings = dict(
16        blog_title=u"Tornado Blog",
17        template_path=os.path.join(os.path.dirname(__file__),    "templates"),
18        static_path=os.path.join(os.path.dirname(__file__), "static"),
19        ui_modules={"Entry": EntryModule},
20        xsrf_cookies=True,
21        debug=True,
22        )
23       tornado.web.Application.__init__(self, handlers, **settings) #将参数设置传递到父类 Application中
24  
25  
26 def main():
27       http_server = tornado.httpserver.HTTPServer(Application()) #传递 Application 对象,封装成 HTTPServer 对象
28       http_server.listen(8000) #启动 HTTPServer 监听,实际上    HTTPServer 继承自 TCPServer,是在TCPServer 中启动 listen Socket 端口
29       tornado.ioloop.IOLoop.instance().start() 获取全局IOLoop 单例,启动IOLoop 大循环

 

 
 

 

以上是关于Tornado 高并发源码分析之一---启动一个web服务的主要内容,如果未能解决你的问题,请参考以下文章

Tornado 高并发源码分析之三--- Application 对象

Tornado 高并发源码分析之四--- HTTPServer 与 TCPServer 对象

Tornado 高并发源码分析之六---异步编程的几种实现方式

flume-ng 源码分析-整体架构之一启动篇

Tornado从入门到进阶 打造支持高并发的技术论坛

第二篇:白话tornado源码之待请求阶段