这是我的代码:
#/test
class Test(tornado.web.RequestHandler):
@tornado.web.asynchronous
@tornado.gen.coroutine
def get(self):
res = yield self.inner()
self.write(res)
@tornado.gen.coroutine
def inner(self):
import time
time.sleep(15)
raise tornado.gen.Return('hello')
#/test_1
class Test1(tornado.web.RequestHandler):
@tornado.web.asynchronous
@tornado.gen.coroutine
def get(self):
res = yield self.inner()
self.write(res)
@tornado.gen.coroutine
def inner(self):
raise tornado.gen.Return('hello test1')
当我获取/测试然后获取/ test_1,但是/ test_1在/ test响应之前没有响应,如何修复它?
答案 0 :(得分:2)
不要使用time.sleep()
。 time.sleep()
将阻止cpu循环。相反,使用
yield tornado.gen.Task(tornado.ioloop.IOLoop.instance().add_timeout,
time.time() + sleep_seconds)
答案 1 :(得分:0)
你遇到了两个常见问题:
http://www.tornadoweb.org/en/stable/faq.html
首先,请不要在Tornado应用程序中使用time.sleep(),而是使用gen.sleep()。其次,请注意大多数浏览器不会同时从同一个域中获取两个页面:使用“curl”或“wget”来测试您的应用程序。