1

我有一段非常简单的代码,我在其中将一些实体添加到数据存储区。

    public final class storageUtil {

    private static DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();  

    public static Iterable<Entity> getAllEntities(String kind) {
        Query q = new Query(kind);
        PreparedQuery pq = datastore.prepare(q);
        return pq.asIterable();
    }

    public static void putEntity(Entity entity) {
        datastore.put(entity);
    }


}

如果我调用 putEntity(myEntity),然后调用 getAllEntities(myKind),新放置的实体只会在 3 次中出现 2 次出现在返回的列表中。

如果我在放置后立即调用 datastore.get(myKey) ,它将始终返回新放置的条目。

任何人都可以告诉我发生了什么吗?

4

2 回答 2

0

您使用的是哪种数据存储?这是一个高复制(默认)数据存储吗?您是否正在针对真实服务器(而不是开发人员?)进行测试,如果是这样,由于“最终一致”的行为,这种行为在某种程度上是意料之中的。

使用高复制数据存储

是您应该开始寻找解决方法的地方

于 2011-08-16T09:06:16.970 回答
0

使用事务将您的实体放入数据存储区,在这里您将找到一个示例。

于 2011-09-12T12:47:22.907 回答