跳至主要內容

Chunk介绍


Chunk介绍

Chunk元素定义面向批的处理操作,Chunk典型地提供了标准的read、process、write三种操作。

Chunk的属性

属性说明默认值
commit-interval提交间隔,读出、处理指定的数据后,通过writer批量写入,并提交事务
reader读取数据的Bean的名字,需要实现org.springframework.batch.item.ItemReader接口
processor批处理中的处理逻辑,需要实现接口:org.springframework.batch.item.ItemProcessor
writer写数据的Bean的名字,需要实现接口:org.springframework.batch.item.ItemWriter
skip-limit异常发生时,允许跳过的最大数。当跳过数目达到后,数据处理(包括读数据、处理数据、写数据)发生的异常会抛出,导致任务Step失败
skip-policy跳过策略Bean,需要实现接口:org.springframework.batch.core.step.skip.SkipPolicy
retry-policy重试策略Bean,需要实现接口:org.springframework.batch.retry.RetryPolicy
retry-limit任务执行重试的最大次数
cache-capacityretry-policy 缓存的大小,缓存用于存放重试上下文 RetryContext,如果超过配置最大值,会发生异常:org.springframework.batch.retry. policy.RetryCacheCapacityExceededException4096
reader-transactional-queue是否从一个事务性的队列读取数据:true 表示从一个事务性的队列中读取数据,一旦发生异常会导致事务回滚,从队列中读取的数据同样会被重新放回到队列中;false 表示从一个没有事务的队列获取数据,一旦发生异常会导致事务回滚,消费掉的数据不会重新放置在队列中false
processor-transactional处理数据是否在事务中,true 表示将 processor处理的结果放在缓存中,当执行重试或者跳过策略时可以看到缓存中处理的数据:false 表示不会将 processor处理的数据放在缓存中,即 processor在chunk 的每一条记录仅会执行一次。需要注意:如果将 reader-transactional-queue 设置为 true,则processor-transactional必须设置为truetrue
chunk-completion-policy批处理完成策略,需要实现接口:org.springframework.batch.repeat.CompletionPolicy

Chunk的子元素

子元素说明
reader读取数据的Bean的定义,需要实现接口:org.springframework.batch.item.ItemReader
processor批处理中的处理逻辑的定义,需要实现接口:org.springframework.batch.item.ItemProcessor
writer写数据的Bean的定义,需要实现接口:org.springframework.batch.item.Item Writer
skip-policy跳过策略Bean定义,需要实现接口:org.springframework.batch.core.step.skip.SkipPolicy
retry-policy重试策略Bean定义,需要实现接口:org.springframework.batch.retry.RetryPolicy
retry-listeners重试操作监听器,需要实现接口:org.springframework.batch.retry.RetryListener
streams定义一组实现ItemStream的对象,需要实现接口:org.springframework.batch.item.ItemStream。Step 执行期间需要知道 reader、processor、writer 定义的实例哪些是实现接口 ItemStream 的(显现接口 ItemStream 的 reader、processor、writer的对象能够在任务重启的时候从正确的点恢复)。Spring Batch框架自动注册实现了接口ItemStream的对象,如果在reader、processor、writer 中用到的对象没有直接实现接口ItemStream,需要在此处显式注册
skippable-exception-classes定义一组触发跳过的异常
retryable-exception-classes定义一组触发重试的异常
listeners定义一组Chunk的拦截器,需要实现接口:org.springframework.batch.core.ChunkListener
上次编辑于:
贡献者: Neil