Je vois beaucoup ce modèle.requêtes paginées/recette d'itérateur
Sur le serveur:
// Get a bounded number of results, along with a resume token to use
// for the next call. Successive calls yield a "weakly consistent" view of
// the underlying set that may or may not reflect concurrent updates.
public<T> String getObjects(
int maxObjects, String resumeToken, List<T> objectsToReturn);
Le client:
// An iterator wrapping repeated calls to getObjects(bufferSize, ...)
public<T> Iterator<T> getIterator(int bufferSize);
La plupart des endroits roulent leurs propres versions de ces deux méthodes, et les mises en œuvre sont étonnamment difficiles à obtenir le droit. Il y a beaucoup de bogues de cas limites.
Existe-t-il une recette canonique ou une bibliothèque pour ces requêtes?
(vous pouvez faire quelques suppositions simplificatrices pour le stockage côté serveur, par exemple T a un ordre naturel).
Je ne pense pas que cela dtrt si la La table est modifiée simultanément, car tous les offsets suivants seront incohérents. – ashm
Dans ce cas, vous transmettez un paramètre supplémentaire pour l'ID de l'endroit où vous voulez reprendre au lieu d'utiliser le compteur de pages et le décalage. La structure du code ne change pas. –