Il tuo errore si è verificato perché stai elaborando lo stream troppo lentamente, quindi il tempo del cursore è scaduto prima di passare al batch successivo.
La dimensione del batch può essere impostata su Oggetto Spring Data Query o su un Repository utilizzando @Meta annotazione. Ad esempio:
Query query = query(where("firstname").is("luke"))
.batchSize(100);
O quando si utilizzano i repository:
@Meta(batchSize = 100)
List<Person> findByFirstname(String firstname);
Vedi Documentazione Spring Data MongoDB per maggiori dettagli.
Il timeout del cursore può anche essere disabilitato in base alla query utilizzando la stessa configurazione. per esempio. @Meta(flags = {CursorOption.NO_TIMEOUT})
.
Il timeout del cursore non può essere modificato in base alla query. Questa è una configurazione del server. È necessario utilizzare cursorTimeoutMillis parametro server per modificare quel server a livello di server.