1

現時点では、非同期コードはありません。私の竜巻のコストは次のようになります

class EmployeeHandler(tornado.web.RequestHandler):
    '''Returns all users which satisfy conditions'''

    def post(self):
        data = tornado.escape.json_decode(self.request.body)
        age = data['age']
        education = data['education']
        result = self._filter(education, age)
        self.write(json.dumps(result))
        self.flush()

    def _filter(self, education, age):
        '''Reads from local database a lot using SQLAlchemy, make joins and is slow'''
        pass

これを非同期にして、フィルターから非同期的に結果を取得する簡単な方法はありますか?

4

1 に答える 1

0

コードが機能していない場合、この質問に答えるのは難しいですが_filter、調査するためのいくつかの方向性を提案しようと思います.

まず、python のジェネレーターyield キーワードを見てみましょう。

次に、トルネードのadd_callback メソッドを見てみましょう。これにより、非同期アプローチを使用でき、マルチスレッドも利用できます。

于 2013-10-13T07:38:40.937 に答える