區塊導向處理

Spring Batch 在其最常見的實作中使用「區塊導向」處理風格。區塊導向處理指的是一次讀取一筆資料,並建立在交易邊界內寫出的「區塊」。一旦讀取的項目數量等於提交間隔,整個區塊就會由 ItemWriter 寫出,然後交易就會提交。下圖顯示此流程

Chunk Oriented Processing
圖 1. 區塊導向處理

以下虛擬碼以簡化形式顯示相同的概念

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

您也可以使用選用的 ItemProcessor 設定區塊導向步驟,以在將項目傳遞給 ItemWriter 之前處理項目。下圖顯示在步驟中註冊 ItemProcessor 時的流程

Chunk Oriented Processing With Item Processor
圖 2. 具有 Item Processor 的區塊導向處理

以下虛擬碼顯示如何以簡化形式實作此功能

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);

有關項目處理器及其使用案例的更多詳細資訊,請參閱 項目處理 章節。