Twój błąd występuje, ponieważ przetwarzasz strumień zbyt wolno, więc czas oczekiwania kursora zostaje przekroczony, zanim przejdziesz do następnej partii.
Rozmiar partii można ustawić na Obiekt zapytania o dane wiosenne , lub w repozytorium przy użyciu @Meta adnotacja. Na przykład:
Query query = query(where("firstname").is("luke"))
.batchSize(100);
Lub podczas korzystania z repozytoriów:
@Meta(batchSize = 100)
List<Person> findByFirstname(String firstname);
Zobacz Dokumentacja Spring Data MongoDB po więcej szczegółów.
Limit czasu kursora można również wyłączyć na podstawie zapytania przy użyciu tej samej konfiguracji. np. @Meta(flags = {CursorOption.NO_TIMEOUT})
.
Limitu czasu kursora nie można zmienić na podstawie zapytania. To jest konfiguracja serwera. Musisz użyć cursorTimeoutMillis parametr serwera do zmiany tego na całym serwerze.