2

クイズを自動作成するために、GWT+AppEngineで構築されたアプリケーションがあります。

  1. メインのWebページには、[新しいクイズを作成]ボタンがあります。

  2. ボタンをクリックすると、バックエンドでサービスがアクティブになり、クイズが作成されて返されます。

  3. メインページにクイズが表示されます。

クイズの作成には時間がかかるため、ユーザーがクイズに回答するときにクイズをプリロードすることを考えました。クイズを表示した後、バックエンドで別のサービスをアクティブにして、次のクイズを作成し、ローカル変数。ユーザーがもう一度[新しいクイズを作成]をクリックすると、バックエンドは事前に作成されたクイズがあることを認識し、すぐに返します。

これは私のコンピューターの開発モードではうまく機能しますが、AppEngineにデプロイすると機能しません。

すべてのローカル変数を含むバックエンドのコピーがいくつかあるようです。そのため、「プリロード」サービスは1つのコピーで実行され、「新しいクイズを返す」は別のコピーで実行され、プリロードされたクイズを使用しません。

これはそうですか?バックエンドのコピーはいくつありますか?数が一定であれば、「プリロードクイズ」をコピーごとに1回ずつ、数回実行できます。

4

1 に答える 1

1

この数は一定ではなく、バックエンドサーバーがこのように機能すると想定しないでください。

リクエスト間で通信するには、memcacheやデータストアなどの提供されているサービスを使用する必要があります。基本的に、すべてのリクエストは、アプリケーションの完全に異なる、完全に新しいインスタンスによって応答されると想定する必要があります。通常のメモリ内の変数は、リクエスト間でうまく機能しません。

于 2012-06-11T19:05:05.863 に答える