这个Camel路由应该开始从Ftp-Server读取文件:
from("sftp://user@...")
Run Code Online (Sandbox Code Playgroud)
现在,我不希望它自动启动,轮询或类似.这应该手动启动(外部,JMX).我有其他路由通过MBean触发,我使用直接标签:
from("direct:myRoute1")
Run Code Online (Sandbox Code Playgroud)
哪个是最好的方法来执行相同的操作并从具有FTP读取功能的第一个操作开始?就像是:
from("direct:myRoute2")
.from("sftp://user@...")
.autoStartup(false)
Run Code Online (Sandbox Code Playgroud)
?这不起作用.在手动-JMX触发器之后没有文件被ftp读取.我猜两个"从"开始路由并行工作,因此启动"direct:myRoute2"不会触发FTP.
Kann我把FTP-URI放在另一个组件中,而不是"from",以便在from("direct:myRoute2")之后启动FTP-Read?
BTW:这是一条单独的路线,与其他路线无关.
谢谢
阅读有关如何将路由配置为不自动启动的文档:
然后检查控制总线EIP,它允许从其他路线启动路线
这个常见问题解答谈到了停止路线,但开始会是类似的
CamelContext上还有用于启动路由的API,或者您可以使用JMX.
你需要的是Poll Enrich:
from("direct:myRoute2")
.pollEnrich("ftp://localhost")
.to("mock:result");
Run Code Online (Sandbox Code Playgroud)
现在触发直接(无论你发送给它)和ftp消费者启动.