sql >> Database >  >> NoSQL >> MongoDB

Spring MongoItemReader leest niet alle records bij enkele uitvoering

Ik vermoed dat u waarschijnlijk de verzameling bijwerkt waaruit u leest en dat u ook een veld bijwerkt dat de query gebruikt. Zo ja, dan had ik onlangs hetzelfde probleem.

De MongoItemReader is een paged reader. Dus elke keer dat de schrijver die records bijwerkt, heeft de lezer een kleinere pool, maar de pagina neemt nog steeds toe.

Dus stel je voor dat we 20 items hebben en 5 items tegelijk lezen:

1) Leest items 1-5 van in totaal 20.

2) Updates items 1-5 en nu zijn er in totaal 15 mogelijke items

3) Leest items 6-10 van in totaal 15.

4) Updatet items 6-10 en nu zijn er in totaal 10 mogelijke items.

5) Leest items 11-15 van 10 mogelijke items

6) Read retourneert null omdat er niets wordt geretourneerd voor die pagina.

Dus nu heb je nog maar de helft verwerkt.

Ik volgde de onderstaande tutorial om een ​​MongoDbCursorItemReader te maken die dit probleem voor mij oploste:https://blog.zenika.com/2012/05/23/spring-batch-and-mongodb-cursor-based-item-reader/




  1. Meteor.js mongodb-versie

  2. Kan geen bron uit de pool halen (SocketTimeoutException:)

  3. Wat zijn de nadelen van het opslaan van Guid als String in MongoDB?

  4. Aggregatie in lokale tijdzone in mongodb