[英]Update file after FlatFileItemReader in Spring Batch
我目前在Spring Batch作業中進行以下處理:
我不想寫入新文件,但是我想更新在處理過程中正在讀取的相同文件。
我的問題是,Spring是否有一種典型的方法來使用FlatFileItemReader,然后在運行時在處理器中每行更新同一文件?
謝謝你的幫助。
您始終可以在春季批處理中編寫自定義編寫器,就像下面的示例一樣。 您在哪里讀取數據,將文件形成到內存中,然后使用所需的數據更新同一文件。
不僅如此,FlatFileItemReader還不是線程安全的。 當然,有一些實現線程安全的技巧,但是使用此類技巧不是一個好習慣,這對於創建自定義編寫器總是很好的。
簡短的答案是不,SB不允許您覆蓋正在讀取的文件。
更好的做法是編寫一個中間文件,然后執行刪除/重命名。
編寫一個臨時文件不是一件壞事,特別是如果您正在使用巨大的輸入文件並且OutOfMemoryException即將來臨; 此外,如果刪除/重命名過程失敗,則使用臨時文件還可以使您的步驟可重新啟動,並允許您手動檢索已翻譯的文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.