Tornado高并发处理方法实例代码
本文主要分享的是一则关于Tornado高并发处理方法的实例,具体如下:
#!/bin/envpython
#-*-coding:utf-8-*-
importtornado.httpserver
importtornado.ioloop
importtornado.options
importtornado.web
importtornado.gen
fromtornado.concurrentimportrun_on_executor
fromconcurrent.futuresimportThreadPoolExecutor
importtime
fromtornado.optionsimportdefine,options
define("port",default=8000,help="runonthegivenport",type=int)
classSleepHandler(tornado.web.RequestHandler):
executor=ThreadPoolExecutor(2)
@tornado.web.asynchronous
@tornado.gen.coroutine
defget(self):
#假如你执行的异步会返回值被继续调用可以这样(只是为了演示),否则直接yield就行
res=yieldself.sleep()
self.write("whenisleep%ss"%res)
self.finish()
@run_on_executor
defsleep(self):
time.sleep(5)
return5
classJustNowHandler(tornado.web.RequestHandler):
defget(self):
self.write("ihopejustnowseeyou")
if__name__=="__main__":
tornado.options.parse_command_line()
app=tornado.web.Application(handlers=[
(r"/sleep",SleepHandler),(r"/justnow",JustNowHandler)])
http_server=tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
总结
以上就是本文关于Tornado高并发处理方法实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!