JOB的XML配置相當于命令模式中的一個命令,每次運行,會生成一個JOB INSTANCE,同時也會生成一個JOB EXCETION,JOB INSTANCE表示有一個JOB,JOB EXECUTION表示進行第一次嘗試。失敗運行的JOB再次運行時,只生成一個JOB EXCETION,表示進行的第二次嘗試。當SPRING BATCH JOB引擎接到運行請求時,有以下幾種情況:@import url(http://www.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
- 判斷此JOB以前是否有運行過,判斷依據:根據JOB NAME和JOB PARAMETERS信息去這兩張表查找,如找到記錄,則是有運行過,如確定有則引擎退出并提示。
- 判斷是否有重復運行的JOB,如果沒,查找此JOB上次運行的情況,如果有FAIL的情況,則重新從上次失敗的地方運行繼續運行,判斷根據:根據JOB INSTANCE關聯的JOB EXECUTION查找是否有狀態為FAIL的記錄,如有則是,就新建一個JOB EXECUTION表示進行第二次嘗試,同時又生成關于新JOB的JOB EXECUTION。上次的JOB運行完后,再運行此次新JOB。判斷上次失敗的STEP的依據:查找對應的JOB EXECUTON的STEP EXECUTON狀態為FAIL的STEP即可,會從此步驟開始運行,而不是從第一步開始運行。
參考文檔: