gpt4 book ai didi

java - 在 Apache Camel 中多播文件的问题

转载 作者:行者123 更新时间:2023-12-02 10:38:56 25 4
gpt4 key购买 nike

伙计们。

我必须使用 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);

我尝试将它与 pipeline 和 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;direct:r2;direct:r3”)。

有人知道如何以正确的方式修复它(发送所有文件,或并行发送最大可能的文件)?

最佳答案

根据 Camel 文档:

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

所以发生的情况是,文件内容被赋予四个路由,并且所有路由都处理相同的内容并执行相同的操作。

根据您的要求,尝试使用 SEDA 组件,该组件会分出一个新线程以进行进一步处理。

SEDA COMPONENT

关于java - 在 Apache Camel 中多播文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53071417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com