2017-08-01 105 views
0

我可以在不同的變化中看到類似的問題,但沒有設法找到明確的答案。Camel SFTP按計劃和按需提取

這裏是用例:

    ,我想從每小時
  • 輪詢最重要的是
  • SFTP服務器,我要揭露一個REST端點用戶可以打到做強制的AD從同一SFTP進行臨時檢索。我很高興投票時間保持不變,即如果我進行了投票,20分鐘後用戶隊伍恢復,下一次民意調查可以在40分鐘後進行。

這兩個都應該是冪等的,因爲使用輪詢機制下載的文件不應該再次在臨時拉下載,反之亦然。這兩種訪問方式都應該下載所有可用的尚未下載的文件(可能會有多個新文件 - 我在這裏看到了類似的問題,用於按需提取,但它是針對單個文件的)。

我想避免通過pollEnrich敲擊SFTP - 我的理解是,每個pollEnrich都會從SFTP請求一個新的文件列表,因此在循環中執行pollEnrich,直到檢索到所有文件都將多次調用SFTP。

我正在考慮創建一個路由來啓動/停止一個單獨的路由進行臨時提取,但我不確定這會允許保持路由之間的冪等行爲。

因此,聰明的駱駝腦筋急轉彎,滿足這些要求的最優雅的方式是什麼?

回答

0

不是一個聰明的駱駝大腦,但我會嘗試根據我的理解。

希望,你已經經歷了:

http://camel.apache.org/file2.html

http://camel.apache.org/ftp2.html

我就已經創建了一個過濾器,爲消費者和生產者不同的途徑。

而對於文件的選項,我會用:冪等,延遲,在initialDelay,useFixedDelay = TRUE,maxMessagesPerPoll = 1,eagerMaxMessagesPerPoll爲真,readLock =冪,冪= TRUE,idempotentKey = $ {文件:onlyname},idempotentRepository ,遞歸= false - 用於消費。 沒有文件將被再次讀取!您可以使用各種選項作爲記錄,並嘗試最適合您的選項,如延遲選項。如果喲

「我想避免通過pollEnrich敲擊SFTP - 我的理解是每個pollEnrich都會從SFTP請求一個新的文件列表,因此在循環中執行pollEnrich,直到檢索到所有文件爲止將調用SFTP多次。」 - >除非使用disconnect = true選項,否則連接將不會終止,您可以連續使用或生成文件,檢查斷開連接的ftp選項並斷開斷開連接。

希望這會有所幫助!