Java googleappengine中的并发性

Java googleappengine中的并发性,java,google-app-engine,concurrency,Java,Google App Engine,Concurrency,我在谷歌应用程序引擎中有一个聊天应用程序。我面临着并发性问题。 当聊天从一端开始时,该聊天将广播到帐户中的所有可用代理。当一个人回应时,该人将获得所有权并移除该会话中所有剩余的人 在这里,我同时面临来自多个代理响应的并发请求的问题。此时,每个请求都会取出会话中剩余的代理,而会话中没有主体 我认为这可以通过代码同步解决。但对于多个实例,这种逻辑不起作用。因为代码在不同的服务器中 有没有办法使用datastore/memcache实现此同步 请对此提出建议 提前谢谢 Govind.看看如何将CAS与

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

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

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

有没有办法使用datastore/memcache实现此同步

请对此提出建议

提前谢谢


Govind.

看看如何将CAS与memcache一起使用,或者您可以使用数据存储中的事务,并使用具有已知密钥的计划控制实体。我不使用java,所以无法编写一个示例,而且我只能在cas上找到java的api文档

但是python中的writeup仍然可以解释发生了什么


我尝试使用事务。但由于某些原因,这对我来说是行不通的。我不知道原因。但是使用Memcache递增/递减,我们可以解决这个问题。这些方法是原子的。这是简单而乐观的

请通过这个小组

谢谢你的更新


Govind.

这是一个非常好的主意-这里有一点信息-唯一要记住的是memcache有一个合同,它被认为是不稳定的,并且可以在任何时候刷新。这意味着您需要能够在需要重建的数据存储(或其他地方)中表示相同的逻辑。是的,memcache的临时性可能是一个问题,但在这种情况下,我怀疑这一点,因为OP正在尝试将一组几乎同时发生的请求解析到会话中的第一个。一旦分配了会话,如有必要,应在数据存储中表示该会话。非常感谢。我尝试使用事务。但由于某些原因,这对我来说是行不通的。我不知道原因。但是使用Memcache递增/递减解决了这个问题。这些方法是原子的。这相当简单和乐观。