[英]How to call another step within an chunk process in Spring Batch?
Spring Batch有以下可能/建議嗎?
我有一個csv文件,例如foo.csv。 我設置了一個塊處理,將文件讀入Foo對象,然后將其處理為Bar對象。 最后,將它們寫入文件bars.csv。
foos.csv ---- [IR] ----> Foo ---- [IP] -----> Bar ------ [IW] ----> bars.csv
其中IR代表ItemReader,IP代表ItemProcessor,IW代表ItemWriter
現在,我想進一步處理Bar對象,將其變成Baz對象並對其進行其他處理,例如將其寫入文件bazs.csv左右。
foos.csv ---- [IR] ----> Foo ---- [IP 1] -----> Bar ------ [IW 1] ----> bars.csv
---- [IP 2] -----> Baz ------ [IW 2] ----> bazs.csv
或者,甚至更好
foos.csv ---- [IR] ----> Foo ---- [IP 1] -----> Bar ------ [IW 1] ----> bars.csv
----- [IW 2] ----> [下一步]我們在迭代中重復調用下一步,從而傳遞下一個Bar對象。 在下一步中,我們可以轉換為Baz。
因此,總而言之:是否可以在塊過程中調用步驟? 這是個好主意嗎? 如果沒有,有哪些替代方案?
目前您至少有2種可能的解決方案
您的最后一個用例看起來可以通過面向消息的解決方案更好地實現
您可以考慮使用CompositeItemWriter將處理步驟中的數據輸出到兩個不同的源,一個輸出到“ bars.csv”,另一個輸出到某種“ Baz” ItemWriter。
您的流程將如下所示:
foos.csv ---- [IR] ---> Foo --- [IP1] ---> Bar ---- [IW1] ----> bars.csv
[IW2] ----> Baz --- [further steps]
這樣可以解決您的用例嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.