2012-10-24 30 views
7

オン必ずウォームアップ/ロード要求と私のは、ウォームアップ要求のを理解することは、新しいフロントエンド/バックエンドのインスタンス「プライム」への要求であるということである(または、彼らは唯一のフロントエンドには適用されない?)近い将来、ある時点で使用される準備をしています。読み込み要求のを理解Google App Engineの:

は、それが必要とされるので、スピンアップするための新しいインスタンスを要求であることをです。したがって、事前にインスタンスを "ウォームアップ"しようとすると、待ち時間を大幅に短縮できます。

私の最初の質問は、これらのリクエストタイプの正確な理解であり、そうでない場合(または私がここで注目すべきものがない場合)は、明確にしてください/訂正してください。

次は私は不思議です:あなたのGAEサーバー側のコードをウォームアップまたはロード要求を「処理」するにはどうすればよいですか?私が実装する必要がある特定のインターフェイスがありますか(Java EEの土地では、アプリケーション/アプリケーションのデプロイ/開始時にWeb/Appコンテナが検索して呼び出すServiceContextListenerを実装する必要があります)。もしそうなら、そのためのAPIは何ですか?それ以外の場合は、GAEアプリの「エントリポイント」は何ですか?基本的に私はどのクラス/メソッドがウォームアップ/ロード要求を処理する必要があるのだろうかと思っています。

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

答えて

7

ウォームアップ要求は、トラフィックを処理する準備ができているインスタンスを取得するための方法です。そのため、JavaまたはPythonアプリケーションがすべてのインポートを読み込んだ後、インスタンス固有の初期化を行います。キャッシュ・ウォーミング)を実行する必要があります。ウォームアップ要求は、フロントエンドとバックエンドの両方に適用されます。

どのようにするかは、言語によって異なりますが、基本的には、/_ah/warmupへのリクエストのハンドラが必要です。このハンドラは、500応答以外のものを生成します。詳細については、Googleの「App Engineウォームアップリクエスト」で適切な結果を選択してください。 WarmupリクエストはJavaではデフォルトで有効になっていますが、Pythonではapp.yamlで有効にする必要があります。私はまだ彼らのために試していない。

「ロード要求」は、私が知る限り、インスタンスが処理しなければならない最初の要求に与えられた名前です。 https://developers.google.com/appengine/kb/java#What_Is_A_Loading_Requestにはいくつかの詳細があります。