问题描述
- python tornado4.0.2 异步问题
-
用tornado时,每个请求sleep5秒,异步的方式,但是从浏览器测试没有出现异步的效果,哪位大侠知道呢class IndexHandler(tornado.web.RequestHandler):
@tornado.web.asynchronous
@tornado.gen.coroutine
def get(self):
print("begin")
#yield tornado.gen.Task(tornado.ioloop.IOLoop.instance().add_timeout, time.time() + 5)
yield gen.Task(IOLoop.instance().add_timeout, IOLoop.instance().time() + 5)
? print("after")
? greeting = self.get_argument('greeting', 'Hello')
? self.write(greeting + ', friendly user!')
? self.finish()if __name__ == "__main__": tornado.options.parse_command_line() app = tornado.web.Application(handlers=[(r"/", IndexHandler)]) http_server = tornado.httpserver.HTTPServer(app) http_server.listen(options.port) tornado.ioloop.IOLoop.instance().start()
解决方案
浏览器是用的ajax异步方式请求的吗,不然Javascript就是串行化
解决方案二:
开多个窗口可以看出效果,两次出结果中间间隔肯定少于5s
其实直接使用apache的ab 并发100看看结果就知道了
时间: 2024-12-27 00:30:04