0
所以我重複的代碼,我對做很多的GET - 檢查響應是否以前緩存並返回,如果它是可用的。重構龍捲風請求處理器
的代碼,我想獲得工作看起來像這樣:
class Handler(web.RequestHandler):
@gen.coroutine
def get_cache(self):
try:
response = yield gen.Task(get_redis)
except:
logging.log()
if response:
self.finish(response)
raise gen.Return()
@gen.coroutine
@asynchronous
def get(self):
self.get_cache()
response = do_sql_get()
self.set_cache(key, response)
self.finish(response)
現在所發生的事情是,它得到的緩存,如果有,但繼續運行的代碼的其餘部分self.get
。這樣做對我來說很有意義,但我不知道如何在self.get_cache
方法中調用self.finish
以正確地重構它。