tornado(二)

紧接上回

httpserver

  将app.listen进行拆分

  则可以写成

1 import tornado.httpserver
2 
3 #app.listen(9000)   =
4 
5 http_server = tornado.httpserver.HTTPServer(app)
6 http_server.listen(9000)

tornado.httpserver模块就是tornado的HTTP服务器实现,由于要获取路由信息,所以需要传入app对象

单进程与多进程

  修改之前代码

 1 import tornado.web
 2 import tornado.ioloop
 3 import tornado.httpserver 
 4 
 5 class IndexHandler(tornado.web.RequestHandler):
 6     """主路由处理类"""
 7     def get(self):
 8         """对应http的get请求方式"""
 9         self.write("Hello Itcast!")
10 
11 if __name__ == "__main__":
12     app = tornado.web.Application([
13         (r"/", IndexHandler),
14     ])
15     http_server = tornado.httpserver.HTTPServer(app) 
16     # -----------修改----------------
17     http_server.bind(8000)
18     http_server.start(0)
19     # ------------------------------
20     tornado.ioloop.IOLoop.current().start()

  http_server.bind(port)方法是将服务器绑定到指定端口。

  http_server.start(num_processes=1)方法指定开启几个进程,参数num_processes默认值为1,即默认仅开启一个进程;如果num_processes为None或者<=0,则自动根据机器硬件的cpu核芯数创建同等数目的子进程;如果num_processes>0,则创建num_processes个子进程。

注:

  1.app.listen()只限于单进程

  2.不建议这种多进程方式,而是应手动开启多个进程,并且绑定不同端口

猜你喜欢

转载自www.cnblogs.com/lihao-like/p/9430851.html
今日推荐