我正在使用Google App Engine和Datastore开发我的第一个Web应用程序。发展中国家 过程很简单,但我有一个很大的困境。我想创建一个“喜欢”的机制 用户的状态(如Facebook的“喜欢”)。
所以我创建了一个“状态”实体,它具有“likeIndex”属性(我只想总计喜欢的总和)。现在我想确保当多个用户同时给出状态时,我不会遇到并发问题。
我是否从我对Datastore的短暂经验中学到了这样的流程:
我没有在具有likeIndes = 2的Datastore statusA对象中使用likeIndex = 1的对象。 如何处理更新过程以避免并发问题。这听起来简单而且常见,所以我很惊讶我很难在网上找到解决方案。 (我正在使用JPA)
谢谢!
答案 0 :(得分:2)
您需要在事务中读写likeIndex。
如果您有很多人喜欢(即超过1次/秒),您将遇到性能问题。您需要使用分片计数器。
幸运的是,有一个教程可以一步一步地解释它。惊人!
https://developers.google.com/appengine/articles/sharding_counters