3

私が取り組んでいるWebサービスのためにCherryPyから離れようとしています.1つの代替案はTornadoです。現在、私のリクエストのほとんどは、バックエンドで次のように見えます。

  • POST データを取得する

  • キャッシュにあるかどうかを確認します(データベースアクセス)

  • そうでない場合は、他の Web サービスに対して複数の HTTP リクエストを作成します。リクエストの数によっては、数秒かかることもあります。

竜巻のメイン ループをブロックしてはならないという話をよく耳にします。post()上記のコードのすべてが のメソッドで実行されるかどうか疑問に思ってRequestHandlerいます。これは、コードをブロックしていることを意味しますか? もしそうなら、上記の要件でトルネードを使用するための適切なアプローチは何ですか?

4

1 に答える 1

1

Tornado には、非同期 (実際には2 つのiirc) HTTP クライアント ( AsyncHTTPClient ) が同梱されています。追加の http 要求を行う必要がある場合は、それを使用してください。

トルネード ioloop/mainloop をブロックしないようにするために、データベース ルックアップも非同期クライアントを使用して実行する必要があります。私は、トルネード テーラーメイドのデータベース クライアント (例: redismongodb ) がいくつかあることを知っています。mysql lib は tornado ディストリビューションに含まれています。

于 2011-01-10T16:30:50.960 に答える