分块导向处理

Spring Batch 最常用的处理方式是“块导向”处理方式 实现。分块导向处理指的是一次读取一个数据和 创建“区块”,这些块被写入交易边界内。一旦 读取的项等于提交间隔,整个区块由物品写手,然后交易被提交。下图显示了 过程:spring-doc.cadn.net.cn

块状处理
图1。分块导向处理

以下伪代码以简化形式展示了相同的概念:spring-doc.cadn.net.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);

你也可以配置一个以区块为导向的步骤,并可选地设置物品处理器在将物品交接给物品写手.下图 显示当物品处理器在步骤中被记录为:spring-doc.cadn.net.cn

基于项目处理器的块状处理
图2。基于项目处理器的块导向处理

以下伪代码展示了其简化实现方式:spring-doc.cadn.net.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.cadn.net.cn