8

ウォームアップリクエストについての私の理解は、近い将来のある時点で使用される準備として、新しいフロントエンド/バックエンドインスタンスを「プライミング」するリクエストです(またはフロントエンドにのみ適用されますか? )。

ロードリクエストについての私の理解は、それが必要であるため、新しいインスタンスをスピンアップするリクエストであるということです。したがって、事前にインスタンスを「ウォームアップ」して、読み込みの待ち時間を大幅に短縮することをお勧めします。

したがって、私の最初の質問は次のとおりです。これらのリクエストタイプについての私の理解は正しいですか。そうでない場合(またはここで注目すべき点が不足している場合)は、まず明確化/修正することから始めてください。

次に興味があります。GAEサーバー側のコードでウォームアップまたは読み込み要求を「処理」するにはどうすればよいですか。ServiceContextListener実装する必要のある特定のインターフェイスはありますか(Java EEランドでは、アプリのデプロイ/起動時にWeb /アプリコンテナーが検索して呼び出すインターフェイスも実装する必要があります)。もしそうなら、そうするためのAPIは何ですか?それ以外の場合、GAEアプリの「エントリポイント」は何ですか?基本的に、どのクラス/メソッドがウォームアップ/ロード要求を処理する必要があるのか​​疑問に思っています。

最後に、私は質問します:ウォームアップ要求の処理とロード要求の処理の間で、起動プロセスでどのような(一般的な)アクティビティが異なる必要がありますか?それらは同じではないでしょうか?GAEの「AlwaysOn」プレミアム機能の使用に興味があり、常にオンになるインスタンスのスタートアップコードをどこに配置すればよいかわからないため、質問します。

4

1 に答える 1

8

ウォーミングアップリクエストは、インスタンスがトラフィックを処理できるようにする方法です。これにより、JavaまたはPythonアプリがすべてのインポートをロードし、インスタンス固有の初期化(キャッシュウォーミングを含む)を実行する間、ユーザーは待機する必要がなくなります。それをする必要があります。ウォームアップリクエストは、フロントエンドとバックエンドの両方に適用されます。

その方法の詳細は言語によって異なりますが、基本的に/_ah/warmupは、500応答以外のものを生成する要求のハンドラーが必要です。詳細については、Googleで「AppEngineのウォームアップリクエスト」を検索し、適切な結果を選択してください。ウォームアップリクエストは、Javaではデフォルトで有効になっていますが、Pythonではで有効にする必要がありますapp.yaml。Goではまだ試していません。

「読み込みリクエスト」は、私が知る限り、インスタンスが処理する必要のある最初のリクエストに付けられた名前にすぎません。https://developers.google.com/appengine/kb/java#What_Is_A_Loading_Requestに詳細があります。

于 2012-10-24T04:27:07.830 に答える