我正在使用Python + Tornado创建一个Web应用程序。写了一个简单的处理程序,例如:
class AdminHandler(BaseHandler):
@tornado.web.authenticated
@tornado.web.asynchronous
@gen.engine
def get(self):
response = yield gen.Task(self.acync_func_test, 'my')
print response
self.render('admin/index.html')
def acync_func_test(self, argument, callback):
for i in xrange(1,59999000):
i**2+2-12
callback(argument)
但是函数不是异步执行的。其他客户端正在等待第一个查询执行。如何进行非阻塞执行?
更新
在async_func_test()函数中添加了装饰符'@ gen.engine',但仍被阻止((
答案 0 :(得分:0)
将装饰器'@ gen.engine'添加到async_func_test()函数