[英]Spring Batch: ItemProcessor does not process all records
My batch job doesn't process all read records. 我的批处理作业不处理所有读取的记录。
After finish the job, Spring Batch logs that read 198282 records, but in processor I have a log before start the processing and logged only 196503 , but sometimes, the processor process all. 完成这项工作后,Spring Batch日志读取了198282条记录,但是在处理器中我有一条日志,然后才开始处理,并且只记录了196503年,但有时,处理器会处理所有日志。
I'm running the job in multi thread with throttle limit = 20, but sometimes I have this problems, not process all. 我在油门限制= 20的多线程中运行该作业,但是有时我遇到此问题,而不是全部处理。
ItemReader: JpaPagingItemReader with saveState = false ItemReader: JavePagingItemReader的saveState = false
ItemProcessor: ItemProcessor:
class MyProcessor implements ItemProcessor<Item, Item> {
@Override
public Item process(final Item item) {
log.info("action=process..");
....
}
}
What could be happening? 可能会发生什么? Spring batch is not sending all records to process or I'm doing something wrong to work with multi thread? Spring Batch没有将所有记录发送给进程,或者我在做多线程处理时做错了什么?
Job 工作
@Bean
public Job myJob (Step myStep) {
return jobBuilderFactory.get("myJob")
.start(myStep)
.build();
}
Step 步
@Bean
public Step consolidateTaxaRebateJobStep (
JpaPagingItemReader<Item> reader,
ItemProcessor<Item, Item> processor,
ItemWriter<Item> writer,
TaskExecutor taskExecutor) {
return stepBuilderFactory.get("myStep")
.<Item, Item>chunk(200)
.reader(reader)
.processor(processor)
.writer(writer)
.taskExecutor(taskExecutor)
.throttleLimit(20)
.build();
}
Spring Boot Version: 2.0.1 春季启动版本: 2.0.1
问题是我有一个异常侦听器,当某些记录抛出异常时,该块中的所有记录都会被跳过。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.