【问题标题】:How to skip to next batch step if current batch step input is null如果当前批处理步骤输入为空,如何跳到下一个批处理步骤
【发布时间】:2015-10-22 10:03:03
【问题描述】:

我使用spring批处理框架创建了一个批处理作业,但是如果读取器返回null,批处理作业将创建一个空文件。无论如何要跳到下一步,不要创建文件。

<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>

【问题讨论】:

    标签: spring-batch


    【解决方案1】:

    如果您的ItemWriterFlatFileItemWriter,您可以将属性shouldDeleteIfEmpty 设置为true,这样它就不会在文件为空时创建文件。

    <bean class="org.springframework.batch.item.file.FlatFileItemWriter">
        <property name="shouldDeleteIfEmpty" value="true"></property>
    </bean>
    

    如果您的 ItemWriter 是自定义项目编写器,那么您可以应用自己的逻辑来不创建文件。

    无论哪种方式,它都会进入下一步。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      相关资源
      最近更新 更多