路由的Camel startupOrder不能与File组件一起使用

时间:2016-01-12 05:24:06

标签: apache-camel

我想在执行一些逻辑后启动文件读取路由,所以我使用了startupOrder。但是一旦camel启动,文件组件就开始轮询而不等待其他路由完成执行。

路线:

 <route id="test" startupOrder="1">
    <from uri="timer:foo?period=1000&amp;repeatCount=1" />
    <bean method="checkLogic" ref="serviceProcessor" />

<route id="readconfigfile" >
      <from uri="file:{{config.ConfigPath}}?recursive={{config.ConfigRecursiveRead}}&amp;noop=true&amp;consumer.delay={{config.ConfigFileReadGap}}"/>
      <bean method="configRead(${body},&#39;Config&#39;)" ref="ConfigReader"/>

请在这里帮忙。

2 个答案:

答案 0 :(得分:0)

您需要在第二条路线中设置startupOrder = 2,如下例所示:

<route startupOrder="1">
    <from uri="seda:foo"/>
    <to uri="mock:result"/>
</route>

<route startupOrder="2">
    <from uri="direct:start"/>
    <to uri="seda:foo"/>
</route>

答案 1 :(得分:0)

您可以将路线readconfigfile设置为autoStartup=false

<route id="readconfigfile" autoStartup="false">

...然后从您的bean serviceProcessor然后注入CamelContext并使用其api启动该路由,例如

camelContext.startRoute("readconfigfile");

完成bean代码后,准备启动该路由。

相关问题