Java Apache Camel中多播文件的问题

Java Apache Camel中多播文件的问题,java,file,apache-camel,sftp,Java,File,Apache Camel,Sftp,伙计们 我必须使用apachecamel并行处理10个文件,然后通过FTP命令发送。我做了一些研究,听说了一个多播命令。但它显然不起作用,因为我正在服务器中一个接一个地接收文件…:/ 我的文件路径: fromF("file://%s?antInclude=**/*.sync&recursive=true&noop=true", configurationManager.getDestinationFilesFolderPath()) .routeId("FTP_

伙计们

我必须使用apachecamel并行处理10个文件,然后通过FTP命令发送。我做了一些研究,听说了一个多播命令。但它显然不起作用,因为我正在服务器中一个接一个地接收文件…:/

我的文件路径:

 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);
我尝试将它与管道和to一起使用,但这两个选项都没有任何效果

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;直接:r2;直接:r3


是否有人知道如何以正确的方式发送所有文件,或以最大可能的并行方式发送文件?

根据Camel文档:

多播允许将相同的消息路由到多个端点,并以不同的方式处理它们

因此,所发生的是,文件内容被提供给四个路由,它们都处理相同的内容并做相同的事情

为了满足您的需求,请尝试使用SEDA组件,该组件将分叉一个新线程以进行进一步处理


多播将向Parralel中的一个或多个端点发送相同的消息。它不会发送Parralel中的所有消息。您可以使用seda路线来实现这一点。