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 回しか表示されません。

put の直後に datastore.get(myKey) を呼び出すと、常に新しく put されたエントリが返されます。

何が起こっているのか、誰かが私に手がかりを与えることができますか?

4

2 に答える 2

0

どのようなデータストアを使用していますか?これは高レプリケーション(デフォルト)データストアですか?実サーバー(開発者ではない)に対してテストしていますか?そうであれば、「結果整合性」の動作のため、この動作はある程度予想されます。

高レプリケーションデータストアの使用

これを回避する方法を探し始める必要がある場所です

于 2011-08-16T09:06:16.970 に答える
0

トランザクションを使用してエンティティをデータストアに配置します。ここに例があります。

于 2011-09-12T12:47:22.907 に答える