0

我在谷歌应用引擎中有一个聊天应用程序。我正面临并发问题。当聊天从一端开始时,该聊天将广播给帐户中所有可用的代理。当 1 个人回应时,该人将获得所有权并删除该会话中所有剩余的人。

在这里,我同时面临来自多个代理响应的并发请求的问题。此时,每个请求都会取出会话中剩余的代理,并且会话中没有任何主体。

我认为这可以通过代码同步来解决。但是对于多个实例,这个逻辑不起作用。由于代码位于不同的服务器中。

有没有办法使用数据存储/内存缓存实现此同步。

请就此提出建议。

提前致谢。

戈文德。

4

2 回答 2

1

查看将 CAS 与 memcache 一起使用,或者您可以使用数据存储中的事务并使用已知键计划控制实体。我不使用 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 回答