2017-08-13 150 views
-1

我正在尋找一種策略來處理大批量的彈簧批量記錄。讀者只需一行輸入,處理器就可以生成一個尺寸如此之大以至於無法放入內存的項目列表。流程本質上是: read - > generate - > write彈簧批處理 - 處理大量數據

不確定是否需要某種嵌套批處理,或許使用tasklet,或者如果我一般持有spring批處理錯誤。

+0

是否有一個原因,你不能在一個單獨的步驟預先生成列表的方式工作?登臺表等? –

+0

我在想什麼是做類似 閱讀請求 - >有一些提供程序,一次提供500k生成的行 - >作家,他們寫這樣的。 問題是我該怎麼做?我需要某種物品處理器,可以不斷地將數據以大塊的形式返回給作者,所以我不會炸掉堆。 – CoffeeIsProgramming

+1

我會創建一個讀取器來完成這一代。 Reader獲取輸入,然後將生成內容的塊提供爲項目。其餘步驟相應地工作。 –

回答

1

我會說你需要實現一個自定義Reader/Generator/Writer閱讀狀態 - 例如可分頁,以便生成您生成「頁面」列表的項目列表。每個頁面都包含對來自文件和頁面信息[偏移量,頁面大小]的原始行的引用。

發電機依次將「源頁面」轉換爲包含項目的較小容器。