Votre erreur se produit parce que vous traitez le flux trop lentement, de sorte que le curseur expire avant que vous n'arriviez au lot suivant.
La taille du lot peut être définie sur Objet Spring Data Query , ou sur un Repository en utilisant @Meta annotation. Par exemple :
Query query = query(where("firstname").is("luke"))
.batchSize(100);
Ou lors de l'utilisation de référentiels :
@Meta(batchSize = 100)
List<Person> findByFirstname(String firstname);
Voir Documentation Spring Data MongoDB pour plus de détails.
Le délai d'expiration du curseur peut également être désactivé pour chaque requête en utilisant la même configuration. par exemple. @Meta(flags = {CursorOption.NO_TIMEOUT})
.
Le délai d'expiration du curseur ne peut pas être modifié pour chaque requête. C'est une configuration de serveur. Vous devez utiliser le cursorTimeoutMillis paramètre de serveur pour modifier ce paramètre à l'échelle du serveur.