Spring作业不处理所有记录,但退出状态为Complete

时间:2017-09-28 14:08:22

标签: spring-batch

Spring作业说明:从表中删除记录。将处理约500万条记录。

步骤:块大小 - 10,000,调用读者和作者

Reader:扩展JpaPagingItemReader并根据where子句从Oracle db中读取记录。分页大小 - 10,000

JpaItemWriter:扩展JpaItemWriter并删除记录。

问题:批处理要处理的记录为90,000(通过在SQLDeveloper中运行reader查询)。批次仅处理50,000。注意没有跳过的记录,批处理成功退出,状态为Complete,日志中也没有记录错误。当批次再次运行时,另外20,000(在40,000中)被处理等等......

我不确定为什么会这样。感谢任何帮助。非常感谢。

步骤配置:

@Bean("CleanupSkuProjStep") 
public Step cleanupSkuProjStep() 
{ 
    return stepBuilderFactory.get("cleanupSkuProjStep") .<SkuProj, SkuProj>chunk(10000) .reader(cleanupSkuProjReader) .writer(cleanupSkuProjWriter) .listener(cleanupSkuProjChunkListener) .build(); 
}

读者配置:

this.setPageSize(10000);
this.setEntityManagerFactory(entityManagerFactory);
this.setQueryString(sqlString);

作家没有配置。

工作配置:

@Bean 
public Job job() 
{
    log.info("Starting job: CleanupSkuProjJob"); 
    return jobs.get("CleanupSkuProjJob") .listener(jobListener) .incrementer(new RunIdIncrementer()) .start(cleanupSkuProjStep) .build(); 
}

0 个答案:

没有答案