0
目標:我正在使用彈簧批處理數據並且我想要一個選項來停止/恢復(它從哪裏離開)。如何停止和恢復彈簧批量作業
問題:我可以向正在運行的作業發送停止信號併成功停止。但是,當我嘗試將開始信號發送到同一個作業時,它會創建一個新的作業實例並作爲新工作開始。
我的問題是我們如何才能在春季批次中爲停止的作業實現恢復功能。
目標:我正在使用彈簧批處理數據並且我想要一個選項來停止/恢復(它從哪裏離開)。如何停止和恢復彈簧批量作業
問題:我可以向正在運行的作業發送停止信號併成功停止。但是,當我嘗試將開始信號發送到同一個作業時,它會創建一個新的作業實例並作爲新工作開始。
我的問題是我們如何才能在春季批次中爲停止的作業實現恢復功能。
你只需要用相同的參數運行它。只要確保您沒有將作業標記爲未重新啓動,並且您沒有使用RunIdIncrementer
或類似的代碼即可自動生成唯一的作業參數。
參見例如this example。第一次運行之後,我們有:
INFO: Job: [SimpleJob: [name=myJob]] completed with the following parameters: [{}] and the following status: [STOPPED] Status is: STOPPED, job execution id 0 #1 step1 COMPLETED #2 step2 STOPPED
和之後的第二個:
INFO: Job: [SimpleJob: [name=myJob]] completed with the following parameters: [{}] and the following status: [COMPLETED] Status is: COMPLETED, job execution id 1 #3 step2 COMPLETED #4 step3 COMPLETED
注意,停止步驟將被重新執行。如果您使用面向塊的步驟,請確保至少ItemReader
實現ItemStream
(並使用正確的語義)。
標記爲allowRestartWithComplete
的步驟將始終重新運行。