2011-04-16 257 views
3

我對Apache駱駝非常陌生,我正在探索如何創建一個從ftp中拉取數據的例程,每15分鐘一次,並且只抽取新的或更新的文件,所以如果某些文件被提前下載並仍然相同(不變)的ftp加載程序不應將其加載到目標文件夾。Apache Camel從ftp遞增和週期性地提取數據

任何建議熱烈讚賞。

更新#1

我已經注意到,我需要看的FTP2,實際上我已經取得了進展,但我要澄清的最後一件事:consumer.dealy定義每次下載嘗試之間的延遲,例如consumer.delay = 5s,並且在第一次嘗試ftp時包含5個文件,消費者將數據拉到某處並且在第二次嘗試時等待5s ftp仍然相同,駱駝只是不做任何事情,之後就是ftp到達額外的5個文件和5秒鐘後ftp消費者下載這些剛剛到達的新文件或consumer.delay只是讓消費者等待文件的每次下載(文件#1 - > 5s - >文件#2 - > 5s - >等...)

我想實現第一種場景。另外,我觀察到一旦某些文件被下載到目標文件夾,我的意思是從ftp到本地文件系統,這些文件在隨後的數據加載中將被忽略,即使這些文件在本地文件系統上被刪除,我如何告訴駱駝再次下載刪除的文件,它如何存儲已加載文件的信息?它似乎每次下載所有文件即使在第一次數據下載時也下載了文件。我是否需要編寫過濾器來排除已下載的文件?

回答

2

存在對apache的駱駝FTP組件http://camel.apache.org/ftp.html

使用「consumer.delay」屬性提取數據延遲在每次輪詢之間毫秒。

的實施細則看這裏http://architects.dzone.com/articles/apache-camel-integration

+0

有一個字符串 - >長型轉換器,所以如果你設置延遲= 15M,那麼這意味着15分鐘。這比讀數更容易閱讀,而價值將以毫秒爲單位。 – 2011-04-16 16:05:54

+1

順便說一句,如果你使用駝峯2.x那麼你應該使用這個linke的FTP組件,因爲它被重新編寫爲駱駝2.0:http://camel.apache.org/ftp2 – 2011-04-16 16:06:52

+0

謝謝你的條款,請檢查更新# 1我的問題 – endryha 2011-04-18 09:55:44