【问题标题】: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】:
这是一个块类型的步骤,因为在 <tasklet> 元素内部是一个 <chunk> 元素,它定义了读取器、写入器和/或处理器。
下面是一个作业的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>
因此您可以看到区别实际上是在步骤级别上,而不是整个工作。