Spring batch 如果当前批处理步骤输入为空,如何跳到下一批处理步骤
我使用SpringBatch框架创建了一个批处理作业,但是如果读取器返回null,批处理作业将创建一个空文件。无论如何,请跳到下一步,不要创建文件Spring batch 如果当前批处理步骤输入为空,如何跳到下一批处理步骤,spring-batch,Spring Batch,我使用SpringBatch框架创建了一个批处理作业,但是如果读取器返回null,批处理作业将创建一个空文件。无论如何,请跳到下一步,不要创建文件 <batch:job id="MY_BATCH_JOB"> <batch:step id="step1" next="step2"> <batch:tasklet> <batch:chunk reader="itemReader" writer="itemWri
<batch:job id="MY_BATCH_JOB">
<batch:step id="step1" next="step2">
<batch:tasklet>
<batch:chunk reader="itemReader" writer="itemWriter"
processor="itemProcessor" commit-interval="2">
</batch:chunk>
<batch:listeners>
<batch:listener ref="readListener" />
</batch:listeners>
</batch:tasklet>
</batch:step>
<batch:step id="step2">
<batch:tasklet>
<batch:chunk reader="itemReader2" writer="itemWriter2"
processor="itemProcessor2" commit-interval="2">
</batch:chunk>
</batch:tasklet>
</batch:step>
</batch:job>
如果您的
ItemWriter
是FlatFileItemWriter
,您可以将属性shouldDeleteIfEmpty
设置为true,以便在文件为空时不会创建该文件
<bean class="org.springframework.batch.item.file.FlatFileItemWriter">
<property name="shouldDeleteIfEmpty" value="true"></property>
</bean>
如果您的
ItemWriter
是自定义项编写器,则可以应用自己的逻辑不创建文件
<batch:job id="MY_BATCH_JOB">
<batch:step id="step1" next="step2">
<batch:tasklet>
<batch:chunk reader="itemReader" writer="itemWriter"
processor="itemProcessor" commit-interval="2">
</batch:chunk>
<batch:listeners>
<batch:listener ref="readListener" />
</batch:listeners>
</batch:tasklet>
</batch:step>
<batch:step id="step2">
<batch:tasklet>
<batch:chunk reader="itemReader2" writer="itemWriter2"
processor="itemProcessor2" commit-interval="2">
</batch:chunk>
</batch:tasklet>
</batch:step>
</batch:job>
无论哪种方式,它都将进入下一步