如果该项目 reader 或步骤不存在文件,如何跳过整个步骤
How to skip whole step if file do not exist for that item reader or step
问题:> 我的 spring 批处理作业有项目 reader 写入处理器。当我 运行 宁它时,它给我错误 Failed to initialize the reader and
还显示:>
原因:java.lang.IllegalStateException:输入资源必须存在(reader处于'strict'模式):文件
我的要求是:如果文件不存在,我希望我的项目reader不运行。
任何人都可以帮助我:如果该项目 reader 的文件不存在,我想跳过整个步骤。
我的步骤包括(项目 reader、处理器和编写器)。
如果文件不存在,请告诉我如何跳过这一步。任何帮助都将是 appreciated.And 是否可以将 reader 设置为非严格模式。
See here:可以在“chunk/step”上设置跳过条件(和限制)。
@Bean
public Step step1() {
return this.stepBuilderFactory.get("step1")
.<String, String>chunk(CHUNK_SIZE)
.reader(flatFileItemReader())
.writer(itemWriter())
.faultTolerant()
.skipLimit(0) // 0: dont re-try
.skip(FlatFileParseException.class) // when you use FlatFileItemWriter,
// but other exception (type) possible, e.g. IllegalStateException.class
.build();
}
要在 FlatFileItemReader 中设置“非严格”模式,只需:
@Bean
public FlatFileItemReader<XY> flatFileItemReader() {
FlatFileItemReader<XY> reader = new FlatFileItemReader<>();
//!
reader.setStrict(false);
// reader.setXYZ ...
return reader;
}
问题:> 我的 spring 批处理作业有项目 reader 写入处理器。当我 运行 宁它时,它给我错误 Failed to initialize the reader and 还显示:> 原因:java.lang.IllegalStateException:输入资源必须存在(reader处于'strict'模式):文件
我的要求是:如果文件不存在,我希望我的项目reader不运行。
任何人都可以帮助我:如果该项目 reader 的文件不存在,我想跳过整个步骤。 我的步骤包括(项目 reader、处理器和编写器)。
如果文件不存在,请告诉我如何跳过这一步。任何帮助都将是 appreciated.And 是否可以将 reader 设置为非严格模式。
See here:可以在“chunk/step”上设置跳过条件(和限制)。
@Bean
public Step step1() {
return this.stepBuilderFactory.get("step1")
.<String, String>chunk(CHUNK_SIZE)
.reader(flatFileItemReader())
.writer(itemWriter())
.faultTolerant()
.skipLimit(0) // 0: dont re-try
.skip(FlatFileParseException.class) // when you use FlatFileItemWriter,
// but other exception (type) possible, e.g. IllegalStateException.class
.build();
}
要在 FlatFileItemReader 中设置“非严格”模式,只需:
@Bean
public FlatFileItemReader<XY> flatFileItemReader() {
FlatFileItemReader<XY> reader = new FlatFileItemReader<>();
//!
reader.setStrict(false);
// reader.setXYZ ...
return reader;
}