Vedo questo schema molto.query impaginate/iteratore ricetta
Sul server:
// 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);
Sul client:
// An iterator wrapping repeated calls to getObjects(bufferSize, ...)
public<T> Iterator<T> getIterator(int bufferSize);
maggior parte dei luoghi rotolare le proprie versioni di questi due metodi, e le implementazioni sono sorprendentemente difficile da ottenere. Ci sono molti bug di casi limite.
C'è una ricetta o una biblioteca canonica per queste domande?
(è possibile semplificare alcuni presupposti per l'archiviazione sul lato server, ad esempio T ha un ordinamento naturale).
non ritengo questo dtrt se la la tabella viene modificata contemporaneamente, poiché tutti gli offset successivi saranno incoerenti. – ashm
In questo caso si passa in un parametro aggiuntivo per l'ID per cui riprendere da invece di utilizzare il contatore di pagine e l'offset. La struttura del codice non cambia. –