0

Google App Engine にチャット アプリケーションがあります。同時実行の問題に直面しています。チャットが一方の端から開始されると、そのチャットはアカウント内の対応可能なすべてのエージェントにブロードキャストされます。1 人の男性が応答すると、その男性が所有権を取得し、そのセッションの残りのすべての男性を削除します。

ここで、同時に複数のエージェント応答からの同時要求の問題に直面しています。この時点で、各リクエストはセッション内の残りのエージェントを取り出し、セッション内にボディはありません。

これはコード同期で解決すると思いました。ただし、複数のインスタンスでは、このロジックは機能しません。コードは別のサーバーにあるためです。

データストア/memcache を使用してこれを同期させる方法はありますか。

これについて提案してください。

前もって感謝します。

ゴビンド。

4

2 に答える 2

1

memcache で CAS を使用することを検討してください。代わりに、データストアでトランザクションを使用し、既知のキーを使用して制御エンティティを計画することもできます。私はJavaを使用していないため、例を作成することはできません.CasでJavaのAPIドキュメントしか見つけることができません

https://developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/memcache/MemcacheService.CasValues

しかし、python での書き込みは、何が起こっているのかを説明します。

https://developers.google.com/appengine/docs/python/memcache/#Python_Using_compare_and_set_in_Python

于 2013-10-18T06:59:50.703 に答える
0

トランザクションを使用してこれを試しました。しかし、何らかの理由でうまくいきません。理由はわかりません。しかし、Memcache のインクリメント/デクリメントを使用すると、問題を解決できます。これらのメソッドはアトミックです。これは単純で楽観的です。

このグループを通過してください

https://groups.google.com/forum/#!topic/google-appengine-java/wtESRwKCF5U

最新情報をお寄せいただきありがとうございます。

ゴヴィンド。

于 2013-10-25T09:49:11.613 に答える