我启动了一个基于文件的长数据库搜索,该搜索应该运行异步,并将浏览器端单独留给其他请求,但它似乎阻止了。有什么问题?
class Handler(tornado.web.RequestHandler):
def initialize(self, param):
self.db = param
@tornado.web.asynchronous
@gen.engine
def post(self):
try:
self.set_status(200)
response = yield gen.Task(self.handleSearch, self.request.arguments)
self.finish(response)
except BaseException, s:
logging.exception(s)
self.finish("Error tonight, cause: %s" % s)
def handleSearch(self, request, callback):
return callback(self.db.createList(request))
答案 0 :(得分:1)
为了使用龙卷风异步功能,您的功能也需要异步,否则它不是真的异步
有一些针对龙卷风的库,check this out用于库,但如果你找不到你需要的库,另一个解决方案就是使用精彩的future
所以在python中使用future你的代码就像这样
{{1}}
我已经测试了它,它可以正常运行,它与龙卷风100%兼容,所以你不会遇到任何问题