儲存中繼資料的表
batch_job_execution
batch_job_execution_context
batch_job_execution_params
batch_job_execution_seq
batch_job_instance
batch_job_seq
batch_step_execution
batch_step_execution_context
batch_step_executon_seq
restart會用到的三張表
batch_job_instance 執行個體ID 和 job 名字
batch_job_execution job執行情況
batch_job_execution_params job每次執行啟動的參數
JobInstance
spring batch 通過 job id 和 啟動參數 來唯一确定一個job 執行個體
如果同一個job 啟動參數有變化,會重新建立一個job執行個體。
參數沒有變化,job重新啟動,重新建立一個 jobExection 記錄執行情況。
JobParameters
- Job 啟動參數:用來唯一确定一個 jobInstance
JobExecution
- Job 執行情況:記錄每個jobInstance的每次執行情況
restart 執行個體 表資料的變化
重新開機一個失敗的job ,讓job 能夠最終完成。
系統要重新開機某個特定失敗的job, 得從batch_job_execution_params 查到當時的參數,以此為依據啟動job。
假設日終處理_結息任務,在6月1号晚上10點開始,10:30前結束,但是job 失敗了
此時表中資料應該是:
batch_job_instance :有一個名字為 日終處理_結息任務的Job 執行個體。(一條記錄)
batch_job_execution :有個開始時間為 XXXX-06-01 22:00 結束時間為XXXX-06-01 22:30 狀态為 FAILED 的執行情況記錄。(一條記錄)
batch_job_execution_params: 該失敗執行個體的第一次執行的參數。
因為 該任務是定時任務,是以在當天特定時刻 再次執行同樣參數的job 以便重新開機1号的job, 讓其成功。
這個時候表中資料應該為:
batch_job_instance :不變,依然為當時的執行個體(參數沒發生變化)
batch_job_execution :新增一條,start_time不變與上一次執行開始時間一緻,end_time改變(為此次執行結束時間),status為完成 COMPLETED
batch_job_execution_params: 新增一條與上一條一模一樣的記錄