我想看看下面是否可以在Spring批處理中完成。爲一個ItemReader/Processor/Writer調用一個步驟。在此步驟完成之前,可以調用下一步(帶有自己的讀取器/處理器/寫入器)進行某些處理,然後返回到上一步。在一個步驟中的彈簧批
爲了更清楚起見,在第一步的處理器中,我將一個List放入executionContext
中,希望第二步中的進程能夠將其提取出來作進一步處理,之後程序返回到處理器的第一步是建立一個列表並將其重新設置到上下文中,以便第二步等等。
我想看看下面是否可以在Spring批處理中完成。爲一個ItemReader/Processor/Writer調用一個步驟。在此步驟完成之前,可以調用下一步(帶有自己的讀取器/處理器/寫入器)進行某些處理,然後返回到上一步。在一個步驟中的彈簧批
爲了更清楚起見,在第一步的處理器中,我將一個List放入executionContext
中,希望第二步中的進程能夠將其提取出來作進一步處理,之後程序返回到處理器的第一步是建立一個列表並將其重新設置到上下文中,以便第二步等等。
它看起來好像你正在嘗試做某些事情,而不是Spring-batch。
首先,彈簧批量處理每一步完成。只有這樣,下一步纔會執行。您可以同時開始兩個步驟,但是,它們具有不同的輸入併產生不同的輸出。
此外,將「business」數據放入executionContext並將其用作步驟之間的傳輸容器的方法也很奇怪。
通常,「正常」的讀取器 - 處理器 - 寫入器步驟的工作方式如下: 1.它從 2.它在處理器單獨處理的組塊的每一個讀出項的源讀取條目的塊 3 。它將整個塊寫入目標 4.它以下一個塊開始,步驟1 5.讀取器讀取完所有可用項目後,作業進入下一步。
如果你解釋,這可能會有所幫助,你的最終目標是什麼。據我所知,恐怕你走錯了路。
難道是,你試圖將物品組合在一起?有解決方案。
Thanks @ Hansjoerg.I嘗試在處理器中根據每個項目進行分組,並將它們發送到下一步進行進一步處理。 – user5053360
我不會推薦在處理器內進行分組。如果你在閱讀器中做,你會更好,如下所述:http://stackoverflow.com/questions/31930775/spring-batch-processor/31943265#31943265。通過在建議的解決方案中使用PeekReader,可以確定,步驟上下文已正確更新,因此該步驟在重新啓動期間也能正常工作。 –