-
httpserver
import tornado.web import tornado.ioloop import tornado.httpserver # 新引⼊httpserver模块 class IndexHandler(tornado.web.RequestHandler): """主路由处理类""" def get(self): """对应http的get请求⽅式""" self.write("Hello Tornado!") if __name__ == "__main__": app = tornado.web.Application([ (r"/", IndexHandler), ]) # 创建web服务器,并绑定我们⾃⼰的web应⽤ http_server = tornado.httpserver.HTTPServer(app) http_server.listen(8000) tornado.ioloop.IOLoop.current().start()
-
多进程
可以⼀次启动多个进程,修改上⾯的代码如下: # coding:utf-8 import tornado.web import tornado.ioloop import tornado.httpserver class IndexHandler(tornado.web.RequestHandler): """主路由处理类""" def get(self): """对应http的get请求⽅式""" self.write("Hello Tornado!") if __name__ == "__main__": app = tornado.web.Application([ (r"/", IndexHandler), ]) http_server = tornado.httpserver.HTTPServer(app) # -----------修改---------------- http_server.bind(8000) http_server.start(0) # ------------------------------ tornado.ioloop.IOLoop.current().start()
说明 1.关于app.listen() app.listen()这个⽅法只能在单进程模式中使⽤。 对于app.listen()与⼿动创建HTTPServer实例 这两种⽅式,建议⼤家先使⽤后者即创建HTTPServer实例的⽅式,因为其对于理 解tornado web应⽤⼯作流程的完整性有帮助,便于⼤家记忆tornado开发的模块 组成和程序结构; 2.关于多进程 虽然tornado给我们提供了⼀次开启多个进程的⽅法,但是由于: 每个⼦进程都会从⽗进程中复制⼀份IOLoop实例,如果在创建⼦进程前我们 的代码动了IOLoop实例,那么会影响到每⼀个⼦进程,势必会⼲扰到⼦进程 http_server = tornado.httpserver.HTTPServer(app) http_server.listen(8000) IOLoop的⼯作; 所有进程是由⼀个命令⼀次开启的,也就⽆法做到在不停服务的情况下更新代 码; 所有进程共享同⼀个端⼝,想要分别单独监控每⼀个进程就很困难。
Tornadao—httpserver+多进程
猜你喜欢
转载自blog.csdn.net/piduocheng0577/article/details/105058629
今日推荐
周排行