簡體   English   中英

在Apache Camel中多播文件的問題

[英]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組件,該組件會派出新線程進行進一步處理。

SEDA組件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM