一個標準的批處理程序一般會從數據庫,文件或者隊列中讀取大量的數據和記錄,而後對獲取的數據進行處理,而後將修改後的格式寫回到數據庫中。ios
一般 Spring Batch 在離線模式下進行工做,不須要用戶干預就能自動進行基本的批處理迭代,進行相似事務方式的處理。批處理是大多數 IT 目的一個組成部分,而 Spring Batch 是惟一可以提供健壯的企業級擴展性的批處理開源框架。數據庫
業務場景編程
- 週期提交批處理任務
- 同時批處理進程:並不是處理一個任務
- 分階段的企業消息驅動處理
- 高併發批處理
- 失敗後的手動或定時重啓
- 按順序處理任務依賴(使用工做流驅動的批處理插件)
- 部分處理:跳過記錄(例如,回滾)
- 全批次事務:由於可能有小數據量的批處理或存在存儲過程/腳本中
技術目標架構
- 批量的開發者使用 Spring 的編程模式:開發者可以更加專一於業務邏輯,讓框架來解決基礎的功能
- 在基礎架構、批處理執行環境、批處理應用之間有明確的劃分
- 以接口形式提供通用的核心服務,以便全部項目都能使用
- 提供簡單的默認實現,以實現核心執行接口的「開箱即用」
- 經過在全部層中對 Spring 框架進行平衡配置,可以實現更加容易的配置,自定義和擴展服務。
- 全部存在的核心服務應該可以很容易的在不對系統架構層進行影響的狀況進行替換或擴展。
- 提供一個簡單的部署模塊,使用 Maven 來進行編譯的 JARs 架構,並與應用徹底分離。
https://www.cwiki.us/display/SpringBatchZH/Usage+Scenarios併發