面向数据块的处理

Spring Batch 在其最常见的 “面向块 ”的处理样式中使用 实现。面向数据块的处理是指一次读取一个数据,并且 创建在事务边界内写出的 'chunks' 。一旦 items read 等于提交间隔,则整个 chunk 由 写出,然后提交事务。下图显示了 过程:ItemWriterspring-doc.cn

面向数据块的处理
图 1.面向数据块的处理

以下伪代码以简化的形式显示了相同的概念:spring-doc.cn

List items = new Arraylist();
for(int i = 0; i < commitInterval; i++){
    Object item = itemReader.read();
    if (item != null) {
        items.add(item);
    }
}
itemWriter.write(items);

您还可以配置一个面向块的步骤,其中包含一个可选的 to 在将项目传递给 .下图 显示在步骤中注册 an 时的流程:ItemProcessorItemWriterItemProcessorspring-doc.cn

使用 Item Processor 进行面向数据块的处理
图 2.使用 Item Processor 进行面向数据块的处理

以下伪代码显示了如何以简化的形式实现这一点:spring-doc.cn

List items = new Arraylist();
for(int i = 0; i < commitInterval; i++){
    Object item = itemReader.read();
    if (item != null) {
        items.add(item);
    }
}

List processedItems = new Arraylist();
for(Object item: items){
    Object processedItem = itemProcessor.process(item);
    if (processedItem != null) {
        processedItems.add(processedItem);
    }
}

itemWriter.write(processedItems);

有关项目处理器及其使用案例的更多详细信息,请参阅项目处理部分。spring-doc.cn