一個标準的批處理程式通常會從資料庫,檔案或者隊列中讀取大量的資料和記錄,然後對擷取的資料進行處理,然後将修改後的格式寫回到資料庫中。
通常 Spring Batch 在離線模式下進行工作,不需要使用者幹預就能自動進行基本的批處理疊代,進行類似事務方式的處理。批處理是大多數 IT 目的一個組成部分,而 Spring Batch 是唯一能夠提供健壯的企業級擴充性的批處理開源架構。
業務場景
周期送出批處理任務
同時批處理程序:并非處理一個任務
分階段的企業消息驅動處理
高并發批處理
失敗後的手動或定時重新開機
按順序處理任務依賴(使用工作流驅動的批處理插件)
部分處理:跳過記錄(例如,復原)
全批次事務:因為可能有小資料量的批處理或存在存儲過程/腳本中
技術目标
批量的開發者使用 Spring 的程式設計模式:開發者能夠更加專注于業務邏輯,讓架構來解決基礎的功能
在基礎架構、批處理執行環境、批處理應用之間有明确的劃分
以接口形式提供通用的核心服務,以便所有項目都能使用
提供簡單的預設實作,以實作核心執行接口的“開箱即用”
通過在所有層中對 Spring 架構進行平衡配置,能夠實作更加容易的配置,自定義和擴充服務。
所有存在的核心服務應該能夠很容易的在不對系統架構層進行影響的情況進行替換或擴充。
提供一個簡單的部署子產品,使用 Maven 來進行編譯的 JARs 架構,并與應用完全分離。
https://www.cwiki.us/display/SpringBatchZH/Usage+Scenarios