Apache Camel FTP - 如何手动启动路由

时间:2015-05-12 09:49:25

标签: ftp apache-camel

此Camel路由应该开始从Ftp-Server读取文件:

from("sftp://user@...")

现在,我不想让它自动启动,或轮询或类似。 这应该手动启动(外部,JMX)。 我有其他路由通过MBean触发,我使用直接标签:

from("direct:myRoute1")

使用FTP读取功能执行相同操作并从第一个操作开始的最佳方法是什么?类似的东西:

from("direct:myRoute2")
.from("sftp://user@...")
.autoStartup(false)

? 这不起作用。在手动-JMX触发器之后没有文件被ftp读取。我猜两个"来自"并行开始路线工作,因此启动"直接:myRoute2"不会触发FTP。

Kann我将FTP-URI放在另一个组件中,而不是"来自",以便在from(" direct:myRoute2")之后启动FTP-Read?

BTW:这是一条单独的路线,与其他路线无关。

由于

2 个答案:

答案 0 :(得分:5)

阅读有关如何将路由配置为不自动启动的文档:

然后检查控制总线EIP,它允许从其他路线启动路线

这个常见问题解答谈到了停止路线,但是起点类似

CamelContext上还有用于启动路由的API,或者您可以使用JMX。

答案 1 :(得分:5)

你需要的是民意调查:

from("direct:myRoute2")
.pollEnrich("ftp://localhost")
.to("mock:result");

现在触发直接(无论你发送给它)和ftp消费者开始。