2010-12-01 26 views
0

Bonjour, J'ai un problème sur l'interrogation pour les requêtes de précision sous-seconde de GQL .. Vous vous demandez si quelqu'un avait des problèmes similaires ou des solutions de contournement.google app engine GQL, Comment faire une pagination avec datetime avec une précision de l'ordre de la milliseconde

Le contexte du problème est que je charge des lots de nombreux objets dans le magasin de données google à la fois. Ainsi, des milliers d'objets pourraient être ajoutés en une seconde.

Lors de la récupération, je rencontre le problème de pagination lorsque je souhaite effectuer une mise en page en fonction de la date et de l'heure auxquelles ils ont été ajoutés. (le dernier temps ajouté est idéal pour la pagination car il permet aux utilisateurs d'obtenir uniquement les données qu'ils n'ont pas.)

Puisque les lots d'entités sont ajoutés dans un sous-nombre de secondes inférieur. La pagination est problématique si je dois commencer à paginer avec un lot d'entités insérées dans la même seconde.

Il semble que la solution d'un boîtier d'application ne peut pas gérer les requêtes de seconde, même si j'essaie de transmettre des objets datetime contenant des fractions. C'est-à-dire que j'ai la requête suivante où je passe dans un objet datetime avec des fractions de seconde. comme localement je cours python 2.6.

test = GqlQuery ("select * from table où LastUpdated>: 1", minimumTime)

Si le minimumTime est quelque chose comme 10: 00: 00,0500, le jeu de résultats pourrait encore contenir des enregistrements avec LastUpdated à 10: 00: 00.0100, 10: 00: 00.0200 etc.

Je pense que la solution consiste peut-être à créer mon propre format de clé, qui doit être auto-incrémenté. Mais je voulais juste voir s'il y avait d'autres solutions plus simples qui me manquent.

Merci, Ning

+0

Vous utilisez la pagination avec le champ date/heure? –

Répondre

2

Ne pas paginer sur le DateTime; Au lieu de cela, utilisez cursors.