0
コールバック関数内のself.get_argument( "ip_address")のような引数にまだアクセスしている場合、この呼び出しは実際には非ブロック化ですが、以下のクラスのような非同期mongodbクエリを実行していますか?呼び出しを非同期に保つために、このような引数にアクセスしないでください。コールバック関数内で参照竜巻を非同期に呼び出す方法は?
class MainHandler(tornado.web.RequestHandler):
def get(self):
app_key = self.get_argument("app_key")
#async call to mongodb. call _valid_app afterwards
db.apps.find_one({'app_key': app_key}, callback=self._valid_app);
def _valid_app(self, response, error):
if error:
raise tornado.web.HTTPError(500)
if response:
ip_address = self.get_argument("ip_address")
#rest of the code
else:
print("invalid app_key")