我可能遗漏了什么,但这是正在发生的事情。
有效:我在todo 文件夹中有两个文件。如果我创建这条路线,一切正常,我每 30 秒收到两次交换,每个文件一次:
from(String.format(baseFtpConnectionString, "/todo/") + "&scheduler=quartz2&scheduler.cron=0/10+*+*+*+*+?")
.to("log:test?showAll=true&multiline=true")
.unmarshal(bindyRegister)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
System.out.println("Ok");
}
})
.end();
问题:但是,如果我创建这个路由,每 30 秒接收一次交换,在两个文件之间切换。
from("quartz2://getData?cron=0/10+*+*+*+*+?")
.pollEnrich(String.format(baseFtpConnectionString, "/todo/"))
.to("log:test?showAll=true&multiline=true")
.unmarshal(bindyRegister)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
System.out.println("Ok");
}
})
.end();
baseFtpConnectionString 中的 ftp url 在 String.format 之后是这样的:
ftps://user@path:port/path?password=password&passiveMode=true
为什么 pollEnrich 不给我发送这两个 exchange?它不应该具有与 from 语句相同的行为吗?
编辑 1
有没有一种方法可以使用 poolEnrich
来做到这一点(接收两个文件的所有交换)?
编辑 2
Apparently there is not .那么,除了链接上的方法之外,还有其他方法可以从 direct
组件开始的 ftp
组件加载所有文件吗?
最佳答案
不,它不一样。
轮询充实一次仅充实一条消息。
关于apache-camel - Camel Poll Enrich 显然忽略了 ftp 组件的 Batch Consumer 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37197143/