[英]Problems to multicast a files in Apache Camel
家伙。
我必須使用apache camel並行處理10個文件,然后通過FTP命令發送。 我進行了一些研究,並聽說了“ multicast()”命令。 但這顯然不起作用,因為我正在服務器中一一接收文件...:/
我的檔案路徑:
fromF("file://%s?antInclude=**/*.sync&recursive=true&noop=true", configurationManager.getDestinationFilesFolderPath())
.routeId("FTP_Snapshot_Fetcher")
.setHeader("OriginalFileName", simple("${file:name.noext}"))
.multicast()
.parallelProcessing()
.to(ftpRoutesForSameGroup.split(separator))
.toD("file://" + configurationManager.getDestinationFilesFolderPath() + "?fileName=${in.header.OriginalFileName}" + DAConfigurations.FILE_EXTENSION);
我嘗試將其與管道和一起使用,但是兩個選項都沒有任何效果。
sftp組件是否有可能泄漏?
看起來像:
.toD("sftp://"
+ ftpEndpoint.getUser() + "@"
+ ftpEndpoint.getUrl() + ":"
+ ftpEndpoint.getPort() + "/ftp/${in.header.pathToFile}"
+ "?password=" + ftpEndpoint.getPassword()
+ "&autoCreate=true&passiveMode=true&binary=true&tempFileName=${file:name.noext}"
+ DAConfigurations.FILE_EXTENSION_ON_SYNC
)
此ftpRoutesForSameGroup
是一個字符串,其中包含所有分隔的路由列表(例如:“ direct:r1; direct:r2; direct:r3”)。
有人知道如何以正確的方式修復它(發送所有文件,或並行發送盡可能多的文件)嗎?
根據駱駝文件:
多播允許將同一消息路由到多個端點,並以不同的方式處理它們。
因此,發生的事情是,文件內容分配給了這四個路由,並且它們都處理相同的內容並執行相同的操作。
根據您的要求,嘗試使用SEDA組件,該組件會派出新線程進行進一步處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.