Java 驼峰文件:处理所有文件时停止路由
我有骆驼路线Java 驼峰文件:处理所有文件时停止路由,java,apache-camel,Java,Apache Camel,我有骆驼路线 <routes xmlns="http://camel.apache.org/schema/spring"> <route startupOrder="1"> <from uri="file:D:\Work\eclipse_workspace\dataEngine_GIT_2\src\data" /> <unmarshal> <csv delimiter="|" quoteDisable
<routes xmlns="http://camel.apache.org/schema/spring">
<route startupOrder="1">
<from uri="file:D:\Work\eclipse_workspace\dataEngine_GIT_2\src\data" />
<unmarshal>
<csv delimiter="|" quoteDisabled="true" />
</unmarshal>
<to uri="bean:csvProcessor?method=processNew" />
</route>
</routes>
它不断地轮询目录
如果此作业触发一次,我想停止轮询
如果所有文件都已处理,则路由应停止
我该怎么做
我在下面试过了
<from uri="timer:foo?repeatCount=1" />
<pollEnrich>
<constant>file:D:\Work\eclipse_workspace\dataEngine_GIT_2\src\data</constant>
</pollEnrich>
但它仍在不断地投票
注意:我使用的是spring Camel。您可以订阅在交换完成时调用的回调。你也可以用停车场停车
例如:
<route startupOrder="1" id="myRoute">
<from uri="file:D:\Work\eclipse_workspace\dataEngine_GIT_2\src\data" />
<onCompletion>
<to uri="controlbus:route?routeId=myRoute&action=stop"/>
</onCompletion>
<unmarshal>
<csv delimiter="|" quoteDisabled="true" />
</unmarshal>
<to uri="bean:csvProcessor?method=processNew" />
</route>
您可以订阅在交换完成时调用的回调。你也可以用停车场停车
例如:
<route startupOrder="1" id="myRoute">
<from uri="file:D:\Work\eclipse_workspace\dataEngine_GIT_2\src\data" />
<onCompletion>
<to uri="controlbus:route?routeId=myRoute&action=stop"/>
</onCompletion>
<unmarshal>
<csv delimiter="|" quoteDisabled="true" />
</unmarshal>
<to uri="bean:csvProcessor?method=processNew" />
</route>
CamelBatchComplete exchange属性可用于了解轮询是否完成,然后使用getContext停止路由。stopRouteCamelBatchComplete exchange属性可用于了解轮询是否完成,然后使用getContext停止路由。stopRoute可避免关机期间出现任何问题,例如,如果轮询另一个文件,一个好的做法是在controlbus uri选项中设置async=true。为了避免关机期间出现任何问题,例如,如果轮询另一个文件,一个好的做法是在controlbus uri选项中设置async=true。