要求:
管理器不希望作業實例和作業執行表中有多個作業實例。儘管多次執行都很好,他只想要一個實例。如何使我的Spring批處理步驟執行以非COMPLETED狀態結束
含義: 作業無法以批處理狀態COMPLETED結束,因爲此類實例永遠無法重新啓動。
我的方法: 我嘗試以批處理狀態STOPPED結束作業,以便作業的下一次運行運行先前運行的同一個實例。 (請注意,如果作業失敗,那麼因爲失敗的實例可以重新運行,所以沒有問題)。我打算沒有該作業的參數,以便在每次運行時創建的默認實例與數據庫中已存在的實例(作業實例表)匹配。這樣,我不必擔心在重新啓動時將任何參數傳遞給作業,因爲只有一個實例並且它沒有區分參數。
問題: 如果所有步驟都完成並且BATCH_STEP_EXECUTION對於所有這些步驟都更新爲COMPLTED,即使我設法使作業執行以STOPPED狀態結束,我也不能再重新運行同一作業實例。我收到以下消息:所有步驟已完成或未配置此作業的步驟。
我知道消息的意思,但我試圖讓所有步驟都以完成狀態結束,以便每當我重新運行我的單個實例時,這些步驟都可以重新運行,而不是獲取上面的消息。 我知道,可以使用步驟執行狀態來派生作業執行狀態。例如,如果某個步驟以STOPPED結尾,則可以使用該狀態指示作業以「已停止」以及「元素」結尾。這不是我正在尋找的,因爲我已經知道如何使用它們,除非有辦法執行它們,以便它們影響BATCH_STEP_EXECUTION表中更新的內容。
在該表中,如果成功而不是COMPLETED,我希望這些步驟以STOPPED結束。有任何想法嗎?首先可以做到這一點嗎?
非常感謝,這似乎是有道理的。我會嘗試這種方法,並將結果提供給其他可能感興趣的人。 – mgibson
很棒的工作。乾淨的工作回答 –