私は古い質問に答えるのは申し訳ありませんが、私はこの問題に遭遇し、なぜそれ以上の回答がないのか疑問に思っていました。バートJの質問に答えるために:
I would like to parse RSS feeds in the Tornado application. Would you consider that fairly computationally intensive?
さて、あなたがやっているの解析の種類に、どのようなハードウェアに依存します:)長い時間が長いので、あなたのアプリが対応する0.5秒と言うよりも多くかかった場合、それは遅いように見える - あなたのアプリをプロファイルする。
高速システムの鍵は素晴らしいアーキテクチャーであり、使用しているフレームワーク(Twisted、Tornado、Apache + PHP)ほどの特長はありません。竜巻は非同期の処理スタイルを持っています。それは実際に私の意見では多くのものが取り上げられています。 Node.js、Twisted、およびYawsは、軽量アプローチと非同期処理スタイルのために非常にうまく拡張できる他の非同期Webサーバーの例です。
ので:それは、入ってくるクライアントに応答要求ハンドラを派遣し、その結果、コールバックされるまで、そのクライアントについて考えていないことができるので
When should Tornado be used?
When is it useless?
トルネードは、接続の多くを処理するための良いですイベントキューにプッシュされます。だから、その特定の品質のために、たくさんの要求を扱うときにうまくスケールする必要があるときには、Tornadoを使用するべきです。 非同期処理は、機能的なデカップリングと非共有データアクセスを容易にします。それはRESTまたは他のService Oriented Architectureのようなステートレスデザインで本当にうまくスイングします。また、固有のオーバーヘッドを伴うスレッドやプロセスの生成に対処する必要もなく、ロック/ IPCの問題のいくつかを省くことができます。
一方、バックエンドやデータストアがリクエストを処理するのに時間がかかる場合、Tornadoは大きな違いはありません。特に並行設計やWebサービスの実行に役立ちます。コンカレント・アーキテクチャーなので、設計のスケールを容易にし、カップリングを低く抑えることができます。それは少なくともトルネードでの私の経験です。
ありがとうございました。いくつかの点を明確にしたいだけです:FlaskやDjango bihind Tornadoを使用してアプリケーションのコードを変更せずにすべての利点を得ることができますか? –
はいの場合 - flupでの実行と比較してどのような違いがありますか?ありがとうございました。 –
私はTornadoアプリケーションでRSSフィードを解析したいと思います。あなたはかなり計算集約的だと思いますか? –