私のApache Wicket Webアプリケーションは、GAE/Jのデータ永続性のためにJDOを使用します。同時リクエストと低トラフィックを使用しているにもかかわらず2つのインスタンス
アプリケーションの起動時に、ホームページが表示される前に、ホーム・ページがエンキューされます(デフォルトETAの遅延はゼロです)。このタスクは、存続期間中にアプリケーションが使用するJVMのシングルトンPersistence Manager Factory(PMF)インスタンスを構築するために、新しいWicket Webページの構築を引き起こします。
私は、アプリケーションのAppEngineの-web.xmlファイルに
<threadsafe>true</threadsafe>
を追加することにより、同時要求を使用するようにアプリケーションを設定しています。
これにもかかわらず、アプリケーションのホームページへの1回のアクセス要求の後、私は2つのアプリケーションインスタンスを取得します:ホームページ訪問要求によって作成されたインスタンスと、エンキュータスクの実行によって作成されたインスタンス後で)。
エンキューされたタスクの実行を遅延させることで解決できる可能性があります(おそらく約10秒かかります)。ただし、同時要求を有効にしたときにこれを試す必要があります。最初のGAE/Jアプリケーションインスタンスは、2つ目のインスタンスを作成せずに2つの要求を同時に処理できないのでしょうか?私は何か間違っていると推測しますが、それは何ですか?
スタックオーバーフローのタグ([google-app-engine] [java])と償却グループ「Google App Engine for Java」も検索しましたが、私の質問には何も関係していません。
私はどのポインタにも感謝します。
アプリダッシュボードのアプリケーション設定ページで、最小待機待ち時間の設定は何ですか? –
古いインスタンスのレイテンシは約2.5秒でした。これは、インスタンスをスピンアップし、最初のページをユーザーに提示する時間です。新しいインスタンスは約0.5秒のレイテンシを持っていました。最初の後のすべてのリクエストは、この新しいインスタンスによって処理されるようです。 –