2017-09-25 32 views
0

我想從駱駝文件消費者的目錄中讀取文件,但我需要處理我的路線。所以我不能使用線程內的線程。 可以寫多條路由從同一個端點(同一個目錄)讀取uris之間的小改動(例如排序類型),並且像這樣避免多個使用者對於同一個端點是不允許異常的?不允許同一端點的多個消費者

回答

1

是的,你確定你可以做到這一點,請注意,現在你將會爭用相同的文件,因此請關注讀鎖。默認情況下,駱駝使用標記文件。

您也可以使用不同的延遲,因此它們不會以相同的間隔/時間輪詢。而且您可以隨意排序以減少處理相同文件的機會。

+0

假設一個文件正在被route1消耗,並且有一個標記文件(假設我們正在使用readLock = changed)。 route2是否也能讀取這個文件?如果不是 - 我在這裏有什麼競爭消費問題? – user7916020

+0

在Camel文檔中閱讀關於讀鎖的更多信息。更改將無法獨家使用,因爲這兩個消費者都可以檢測文件何時不再更改並開始閱讀,但標記文件是獨佔的。或潛在的fileLock,但這取決於您正在使用的JDK和文件系統,請閱讀JDK doc/javadoc等。 –

+0

謝謝Claus。 markerFile選項導致大文件的問題,因爲駱駝開始在文件完全寫入之前讀取文件。但是我知道改變的也是使用標記文件,不是嗎?那麼問題是什麼?那麼重命名選項呢?它不會解決這兩個問題嗎? – user7916020

相關問題