0
讓我們從一些例子開始。有圖書館tornado-redis以下是使用它的例子。 Python與龍捲風 - 類實現與太多異步
import tornadoredis
import tornado.web
import tornado.gen
c = tornadoredis.Client()
c.connect()
class MainHandler(tornado.web.RequestHandler):
@tornado.web.asynchronous
@tornado.gen.engine
def get(self):
foo = yield tornado.gen.Task(c.get, 'foo')
bar = yield tornado.gen.Task(c.get, 'bar')
zar = yield tornado.gen.Task(c.get, 'zar')
self.set_header('Content-Type', 'text/html')
self.render("template.html", title="Simple demo", foo=foo, bar=bar, zar=zar)
而且一切都很簡單。但我需要編寫一個包裝類。編碼對我來說沒有問題,但我認爲我錯了異步模式。
我的封裝類應該異步調用redis類,對吧!現在,我還必須以處理程序可以用Task(異步)調用它的方式異步實現我的類嗎?然後我會有兩個異步位置。 保持Tronado異步並保持簡單的正確方法是什麼?
Handler --async call--> MyWrapper --async call--> tronado-redis
或
Handler --sync call--> MyWrapper --async call--> tronado-redis
或
Handler --async call--> MyWrapper --sync call--> tronado-redis