路由的Camel startupOrder不适用于File组件



我想在执行一些逻辑后启动文件读取路由,所以我使用了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"/>

请在这里帮忙。

您可以设置路由readconfigfileautoStartup=false

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

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

camelContext.startRoute("readconfigfile");

当您完成了bean代码,并准备好启动该路由时。

您需要在第二个路由中设置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>

相关内容

最新更新