从GAE数据存储中检索数据失败80%

时间:2014-03-23 14:02:30

标签: google-app-engine google-cloud-datastore

这是我用来在GAE数据存储中保存数据的方法。数据正在保存,但在此方法的return语句中,我正在检索已保存的对象并返回它,它返回null,帮助我解决此问题。

 public UserInfo saveEmergencyUserInfo(UserInfo userInfo) {
    Key userInfoKey = ofy().save().entity(userInfo).now();
    return ofy().load().type(userInfo.class).filterKey(userInfo).first().now();
 }

2 个答案:

答案 0 :(得分:2)

如果您阅读Datastore writes and data visibility,这是正常的。设计您的应用程序,使其在写入之前能够容忍延迟,然后才能进行读取。一种方法是使用Memcache缓存最近写入的数据。这种设计方法有时称为Command & Query Responsibility Segregation,对于解耦子系统和提高应用程序可伸缩性非常有用。

答案 1 :(得分:1)

您遇到了#34;最终的一致性"。如果您需要能够立即查询新写入的数据,请参阅前面的路径,有关常规讨论,请参阅Balancing Strong and Eventual Consistency,有关Java SDK的详细信息,请参阅Structuring Data for Strong Consistency