2017-02-27 144 views
0

我正在使用Spring集成來處理/加載來自csv文件的數據。 我的配置是 -等待文件處理完成

1)輪詢傳入文件

2)採用分路器的文件 - 這給了我的文件

3)標記化行的各行(記錄) - 這使我的價值觀或列

4)使用聚合彙總/收集行(記錄),並在批處理

輪詢寫入到數據庫 - >分離器 - >標記生成器 - >聚合

現在我想等到文件的所有內容都寫入數據庫,然後將文件移動到不同的文件夾。 但是如何識別文件處理何時結束?這裏

問題是,如果文件中有100萬條記錄,我的集合體具有的500批次大小,如何將我知道當我的文件的每一條記錄已經聚集並寫入到數據庫中。您的次分流之前,你必須過濾和/或路由他們 -

回答

0

FileSplitter可以選擇添加標記(BOF,EOF)的輸出。

參見FileSplitter

  1. (markers)設置爲true以在文件數據前後發出文件標記消息的開始/結束。標記是帶有FileSplitter.FileMarker有效載荷的消息(標記屬性中包含START和END值)。順序處理某些行被過濾的下游流中的文件時,可能會使用標記。它們使下游處理能夠知道文件何時被完全處理。另外,包含START或END的標題file_marker被添加到這些消息中。 END標記包括行數。如果文件爲空,則只有START和END標記以0作爲lineCount發出。默認:false。如果爲true,則apply-sequence默認爲false。另見markers-json
+0

這隻會在文件的順序處理,但我正在並行處理文件 –