我開始一個長的基於文件的數據庫搜索,應該運行異步並且讓瀏覽器端單獨爲其他請求,但它似乎阻止。問題是什麼?如何使Tornado服務器端真的異步
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))
這是什麼意思,「讓瀏覽器一邊獨自[..],但它似乎阻止」 ?! – deceze
我有一個可以發送多個請求到服務器(例如通過按鈕)的HTML頁面。當搜索查詢運行時,該頁面的其餘部分(例如通過其他按鈕的請求)應該可訪問, – Lazac
那麼發生了什麼?你如何向服務器發送請求?如果*客戶端*阻塞聽起來更像*客戶端*不是異步的...! – deceze