我在谷歌应用引擎中有一个聊天应用程序。我正面临着并发问题。 当聊天从一端开始时,该聊天将广播到该帐户中的所有可用代理。当一个人回应那个人将取得所有权并删除那个会话中剩下的所有人。
在这里,我遇到同时来自多个代理响应的并发请求的问题。此时,每个请求都会取出会话中的其余代理,并且会话中没有正文。
我认为这解决了代码同步问题。但是多个实例不能正常运行这个逻辑。由于代码位于不同的服务器中。
有没有办法使用数据存储区/内存缓存来实现此同步。
请就此提出建议。
提前致谢。
戈文德。
答案 0 :(得分:1)
将CAS与memcache一起使用,或者您可以在数据存储区中使用事务并使用已知密钥规划控制实体。我不使用java所以不能掀起一个例子,我只能在cas上找到java的api文档
但是python中的写法仍然可以解释发生了什么。
https://developers.google.com/appengine/docs/python/memcache/#Python_Using_compare_and_set_in_Python
答案 1 :(得分:0)
我使用Transactions尝试了这个。但有些原因它不适合我。我不知道原因。但是使用Memcache递增/递减我们可以解决问题。这些方法是原子的。这很简单也很乐观。
请通过这个小组
https://groups.google.com/forum/#!topic/google-appengine-java/wtESRwKCF5U
感谢您的更新。
戈文德。