这是我的代码:
class AsyncTestHandler(BaseHandler):
def testTimeOut(self, callback):
time.sleep(20)
callback("ok")
@tornado.web.asynchronous
def post(self):
user = self.get_current_user()
self.testTimeOut(callback=self.respones)
def respones(self,msg):
self.finish(msg)
我用过”@tornado.web.asynchronous公司“带回调,但请求不是异步的,怎么能id?在
问题是,时间。睡觉不是异步的,所以主循环在休眠时被阻塞。对于异步运行同步代码,可以使用单独的工作线程。在
Tornado只使用一个进程和一个线程。它中的所有IO操作都是异步的,这并不意味着它们是并发处理的。所以,如果你在代码中的任何地方调用
time.sleep(xx)
,那么你的Tornado进程将在这段时间内完全“停止”!在在龙卷风中睡觉的正确方法是打电话给
ioloop.add_timeout
。在见tornado equivalent of delay。在
见http://caisong.com/Tornado%20don't%20use%20time.sleep%20.html。在
相关问题 更多 >
编程相关推荐