我尝试创建一条路由,该路由可以使用csv文件访问http url并简单地打印其内容。不幸的是,文件正在被连续读取。
这是我的代码:
context.addRoutes(new RouteBuilder() {
public void configure() {
from("timer://start?delay=5000")
.to("http4://127.0.0.1:18080/data.csv")
.unmarshal().csv()
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
String list = exchange.getIn().getBody(String.class);
log.info(list);
//Here I would like to stop the route when file reading is finished
}
});
});
谢谢!
最佳答案
计时器将每隔5秒持续通话一次。如果您只想一次调用计时器,则可以设置repeatCount=1
:http://camel.apache.org/timer
但是您可能需要考虑只让它运行一次。如果您需要稍后再调用该HTTP URL,该怎么办?
就像弗兰克(Frank)所说的那样,有一种方法可以将一条路线从一条路线上停下来:http://camel.apache.org/how-can-i-stop-a-route-from-a-route.html