我的Mule ESB服務器上有一個文件夾,有幾個源可以指向(一個SCP,一個SFTP以及其他)。 每當我檢測到一個文件,我想將它移動到另一個目錄。問題是,我正在移動部分完成的文件,導致我丟失數據。Mule ESB:如何檢測部分文件以避免傳輸部分上傳的文件?
我試過使用文件的「文件」屬性,但它似乎不能可靠地工作。我試圖儘可能保持延遲,因爲大多數文件將是< 10kb,但有些需要大到100mb。
有沒有什麼辦法可以知道一個文件是不是一個部分,而不是一個完整的?我知道WinSCP使用.filepart擴展名,但這只是針對一個應用程序,甚至可以在WinSCP的首選項中更改(或完全刪除)該擴展名。
您使用fileAge獲得了哪些可靠性問題?如果它是一個錯誤,也許值得打開一個JIRA @ MuleSoft?這就是說,保持延遲低和可靠性高的最佳選擇是強制使用控制文件(如.filepart)並創建一個特定的過濾器來查找它。 – 2012-04-24 00:12:39
實際上,多進行一次測試,結果發現問題出在操作系統級別。在RedHat上,「上次修改時間」時間戳每更新約1000毫秒,爲4kb文件創建過大的延遲時間。在Windows上更糟糕:「最後修改」僅在傳輸開始時設置,然後在完成時重置。 MuleSoft團隊從技術上講是正確的,可以從這個時間戳中獲取fileAge,但操作系統並沒有經常更新它的工作。他們應該使用文件**大小**。我會提交一份變通票。 – Bing 2012-04-24 12:59:27
這是很棒的發現。 – 2012-04-24 14:57:44