【问题标题】:Spring Batch: is this a tasklet or chunk?Spring Batch:这是一个小任务还是块?
【发布时间】:2019-11-01 19:18:25
【问题描述】:

我有点困惑!

Spring Batch 提供了两种不同的方式来实现作业:使用小任务和块。

所以,当我有这个时:

<tasklet>
  <chunk 
    reader = 'itemReader'
    processor = 'itemProcessor'
    writer = 'itemWriter'
    />
</tasklet>

这是一种什么样的实现方式?小任务?块?

【问题讨论】:

    标签: spring spring-batch tasklet


    【解决方案1】:

    这是一个块类型的步骤,因为在 &lt;tasklet&gt; 元素内部是一个 &lt;chunk&gt; 元素,它定义了读取器、写入器和/或处理器。

    下面是一个作业的example,它首先执行一个块,然后是一个小任务步骤:

    <job id="readMultiFileJob" xmlns="http://www.springframework.org/schema/batch">
      <step id="step1" next="deleteDir">
        <tasklet>
          <chunk reader="multiResourceReader" writer="flatFileItemWriter"
            commit-interval="1" />
        </tasklet>
      </step>
      <step id="deleteDir">
        <tasklet ref="fileDeletingTasklet" />
      </step>
    </job>
    
    <bean id="fileDeletingTasklet" class="com.mkyong.tasklet.FileDeletingTasklet" >
      <property name="directory" value="file:csv/inputs/" />
    </bean>
    
    <bean id="multiResourceReader"
    class=" org.springframework.batch.item.file.MultiResourceItemReader">
      <property name="resources" value="file:csv/inputs/domain-*.csv" />
      <property name="delegate" ref="flatFileItemReader" />
    </bean>
    

    因此您可以看到区别实际上是在步骤级别上,而不是整个工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-10
      • 1970-01-01
      • 1970-01-01
      • 2021-06-09
      • 1970-01-01
      相关资源
      最近更新 更多