2011-07-14 10 views
0

Google App Engineを使用してアプリケーションを構築しています。アプリケーションはいくつかのサーブレットで構成され、そのうちの1つには多くの内部状態を保持する静的メンバーオブジェクトがあります。複数のAndroid携帯電話がこのサーブレットに接続し、サーブレットが静的メンバーオブジェクトの状態を更新します。しかし、複数の電話機が同時にサーバと通信するとき、静的オブジェクトが複数のスレッドによって一度に変更される同期の問題が発生します。私はいくつかの同期ブロックを投げてみましたが、これは役に立たないようです。App Engineでの同期

私の考えは、App EngineがHTTPリクエストのスレッドをどのように生成するかとは関係がありますが、わかりません。 App Engineの共有オブジェクトへのアクセスを同期する標準的な方法は何ですか?ありがとう!

答えて

2

あなたのGAEアプリは、別のサーバーで起動することができます。ある時点でインスタンスが存在する可能性があります。どのインスタンスも、以前に通知することなく、いつでも開始または終了できます。だから、メモリ内の状態は役に立たない。

代わりに、またはmemcacheサービス、またはデータベースを使用する必要があります。

+0

したがって、データストアと関連するmemcacheを使用するだけで、どのような状態もサーバーに保存できますか? – Jeffrey

+0

。メモリを「ファントムキャッシュ」として使用できますが、メガバイトのメモリ制限もあります –

関連する問題