2017-02-23 8 views
1

ブロッキングをサポートしていません、私は仕事へのURLを取得し、非常に簡単な初期サーバー(非同期)を取得しようとしていますが、それはスロー:トルネード:DummyFuture結果

Exception: DummyFuture does not support blocking for results 

あり、このSOポストだが、答えは何

RuntimeError: IOLoop is already running 

は、これは完全なコードです:Webサーバーを実行しているとhereスロー示すように、私のループに未来を追加しようとして含まれていません

ループが実行中で、未来が返されます。どうした?

Pythonの2.7.10
竜巻== 4.4.2

答えて

1

未来からの結果を得るために、gen.coroutine機能でyieldそれを、またはawaitそれasync defネイティブコルーチンインチだから、あなたとFetchSyncHandlerを置き換える:

class FetchSyncHandler(tornado.web.RequestHandler): 
    @gen.coroutine 
    def get(self): 
     data = yield fetch_coroutine(URL) 
     self.write(data) 

詳細については、私のRefactoring Tornado CoroutinesまたはTornado coroutine guideを参照してください。