0
我有一個彈簧批處理作業,我需要從一個文件夾中讀取多個文本文件。 需求是這樣的: - 我需要讀取一個文件,如果有超過300行的條目,那麼我需要將塊大小設置爲300,並將其寫入數據庫中。 如果它小於300那麼我需要將塊大小設置爲代碼行數並寫入數據庫。 然後我需要讀取下一個文件並寫入數據庫,直到文件夾中的所有文件都被佔用。Spring批處理作業處理多個文件,但一次處理一個文件
我有一個彈簧批處理作業,我需要從一個文件夾中讀取多個文本文件。 需求是這樣的: - 我需要讀取一個文件,如果有超過300行的條目,那麼我需要將塊大小設置爲300,並將其寫入數據庫中。 如果它小於300那麼我需要將塊大小設置爲代碼行數並寫入數據庫。 然後我需要讀取下一個文件並寫入數據庫,直到文件夾中的所有文件都被佔用。Spring批處理作業處理多個文件,但一次處理一個文件
這是分區步驟的完美用例。一般來說,你會有你的Partitioner
識別要處理的文件。它將剝離創建兒童步驟,每個步驟將處理一個孩子。對於那些子步驟,你應該將塊大小設置爲300(當它到達文件末尾或300的任何倍數時,框架會自動提交)。
您還需要爲子步驟設置任務執行程序。在你的情況下,因爲你一次只想處理一個文件,所以SyncTaskExecutor
非常合適。
欲瞭解更多信息,請參閱Spring Batch documentation或this example。