3

ドキュメンテーションを読む Play の主張:

http://www.playframework.org/documentation/2.0/ScalaAsync

「Play 2.0 の仕組み上、アクション コードは可能な限り高速である必要があります (つまり、ノンブロッキング)。」

次に、非同期の結果を書き込む方法を示します。「アクションコードは可能な限り高速でなければならない」理由を誰かが詳しく説明できますか? 非同期結果への変更は、リクエストが下位レベルで処理される方法にどのように影響しますか? 抽象化以外の利点は何ですか?

4

1 に答える 1

6

本質的に長いまたは非同期である可能性のある呼び出し (twitter、db などの他のリモート API への呼び出し) に実際に ASync を使用すると、クライアントのみが待機し、サーバーは待機しません (Play 2.0 の動作方法)。

これは、リクエスト自体の処理方法には影響しませんが、結果は akka アクターを使用してさらに結果が約束されるため、アクション全体が実行されます。

この最後の点が重要です。akka は使用可能なスレッドをスリープ状態に保つのではなく、可能な限り再利用します。

私が ASync をどのように使用しているかについて話すのは、Neo4J REST API を使用して永続オブジェクトを処理するときです。データベースのそのような使用は、ネットワーク、帯域幅、クエリのパフォーマンスに依存するためです。ほとんどのリクエスト待ち。クラウド環境で。プロセス/インスタンスを追加することになり、最終的には多くの費用がかかります;-)

于 2012-05-24T21:17:13.870 に答える