Apache Camel FTP - 如何手动启动路由
Apache Camel FTP - How to start the route manually
这条 Camel 路由应该从 Ftp-Server:
开始读取文件
from("sftp://user@...")
现在,我不希望它自动启动、轮询或类似的。
这应该手动启动(外部,JMX)。
我还有其他通过 MBean 触发的路由,我为此使用了直接标签:
from("direct:myRoute1")
使用 FTP-read 功能执行相同操作并作为第一个操作开始的最佳方法是什么?类似于:
from("direct:myRoute2")
.from("sftp://user@...")
.autoStartup(false)
?
这是行不通的。在手动 JMX 触发器之后,没有文件被 ftp 读取。我猜两个 "from" 并行启动路由,因此启动 "direct:myRoute2" 不会触发 FTP.
Kann 我将 FTP-URI 放在 "from" 以外的另一个组件中,以便在 from("direct:myRoute2")?
顺便说一句:这是一条单独的路线,与其他路线没有任何联系。
谢谢
阅读有关如何将路由配置为不自动启动的文档:
然后查看允许从其他路由启动路由的控制总线EIP
这个 FAQ 讨论了停止路线,但开始是相似的
CamelContext上也有API来启动路由,也可以使用JMX。
您需要的是 Poll Enrich:
from("direct:myRoute2")
.pollEnrich("ftp://localhost")
.to("mock:result");
现在触发直接(无论您向其发送什么)并且 ftp 消费者启动。
这条 Camel 路由应该从 Ftp-Server:
开始读取文件from("sftp://user@...")
现在,我不希望它自动启动、轮询或类似的。 这应该手动启动(外部,JMX)。 我还有其他通过 MBean 触发的路由,我为此使用了直接标签:
from("direct:myRoute1")
使用 FTP-read 功能执行相同操作并作为第一个操作开始的最佳方法是什么?类似于:
from("direct:myRoute2")
.from("sftp://user@...")
.autoStartup(false)
? 这是行不通的。在手动 JMX 触发器之后,没有文件被 ftp 读取。我猜两个 "from" 并行启动路由,因此启动 "direct:myRoute2" 不会触发 FTP.
Kann 我将 FTP-URI 放在 "from" 以外的另一个组件中,以便在 from("direct:myRoute2")?
顺便说一句:这是一条单独的路线,与其他路线没有任何联系。
谢谢
阅读有关如何将路由配置为不自动启动的文档:
然后查看允许从其他路由启动路由的控制总线EIP
这个 FAQ 讨论了停止路线,但开始是相似的
CamelContext上也有API来启动路由,也可以使用JMX。
您需要的是 Poll Enrich:
from("direct:myRoute2")
.pollEnrich("ftp://localhost")
.to("mock:result");
现在触发直接(无论您向其发送什么)并且 ftp 消费者启动。