我发现 MongoItemReader 有一个奇怪的问题。这是我一步的配置:
private Step addMnpInformation() throws Exception {
return stepBuilders.get("addMnpInformation")
.chunk(50)
.reader(stagedCdrReader())
.processor(addMnpProcessor())
.writer(stagedCdrWriter())
.build();
}
这是读者
@Bean
public MongoItemReader<StagedCdr> stagedCdrReader() throws Exception {
MongoItemReader reader = new MongoItemReader<StagedCdr>();
reader.setTemplate(stagingCdrTransactionManager);
reader.setQuery("{cdrStatus:'PENDING'}");
reader.setTargetType(StagedCdr.class);
HashMap<String,Direction> sort = new HashMap<String, Direction>();
sort.put("sequence", Direction.ASC);
reader.setSort(sort);
reader.setName("stagedCdrReader");
reader.afterPropertiesSet();
return reader;
}
似乎读者没有阅读其他页面。我正在处理的记录有一个顺序 ID,我发现它正在使用 50 页(可能是我的块大小)读取记录,但是以这种方式:
从 0 到 49 从 100 到 149 从 200 到 249 。. .
从 150 到 199 的读数不是从 50 到 99
跳过多少项目取决于块属性,例如块(50),那么将跳过50个项目,我不知道为什么!