<?xml version="1.0" encoding="utf-8"?>
(...)
,用來校驗工作引數(job parameters),可以實現jobparametersvalidator介面。
如果無法通過驗證,會丟擲jobparametersinvalidexception異常。spring batch提供了乙個預設的實現類defaultjobparametersvalidator,完成絕大部分的工作。如果還是無法滿足需求,可以自己編碼實現介面。
例項:
(...)
date
productid
step listener 作為tasklet標籤的乙個子標籤進行配置。用來跟蹤step的處理過程。
steploglistener" class="test.steploglistener"
scope="step">
利用監聽來出力step執行前後的log
注意:listeners標籤,提供merge屬性,可以用來合併parent和自身的listener
多個step之間的並行化,可以提高批處理的效率。什麼情況下可以應用step之間的並行化,那就要根據具體的業務需求來定。
那我們假設有這樣一種場景:有一類資料,分別存在於檔案和資料庫,資料的內容一樣,只是形式不一樣,那麼我們可以定義並行的step來分別處理來自檔案的資料和來自資料庫的資料,然後,分別進行同樣的processor,然後寫入資料庫。
task-executor指定了乙個非同步任務執行器 ******asynctaskexecutor,該執行器將會按照配置建立指定數目的執行緒來進行資料處理。通過這種方式,避免了我們手動建立並管理執行緒的工作,使我們只需要關注業務處理本身。
表 1. 任務執行器列表
類名描述
是否非同步
synctaskexecutor
簡單同步執行器
否throttledtaskexecutor
該執行器為其他任意執行器的裝飾類,並完成提供執行次數限制的功能
視被裝飾的執行器而定
******asynctaskexecutor
簡單非同步執行器,提供了一種最基本的非同步執行實現
是workmanagertaskexecutor
該類作為通過 jca 規範進行任務執行的實現,其包含 jbossworkmanagertaskexecutor 和 glassfishworkmanagertaskexecutor 兩個子類
是threadpooltaskexecutor
執行緒池任務執行器
是
SpringBatch 配置Job之二
step scope step scope時springbatch框架提供的自定義的scope,將springbean定義為step scope,支援springbean在step開始的時候初始化,在step結束的時候銷毀springbean,將 springbean的生命週期與step繫結。在sp...
SpringBatch的流程簡介
springbatch的流程圖如下 每個batch都會包含乙個job。job就像乙個容器,這個容器裝了若干step,batch中實際幹活的也就是這些step,至於step幹什麼活,無外乎讀取資料,處理資料,然後將這些資料儲存起來 itemreader用來讀取資料,itemprocessor用來處理資...
spring batch中用到的表
1,批量表的字首 來自類abstractjdbcbatchmetadatadao中的變數default table prefix 2,job execution 存放job執行的相關資料,包括job執行的結果,job結束時狀態,job開始時間,job結束時間,版本號,job的例項id,job的執行i...