Apache camel 直接读取文件和进程的驼峰
我有两条平行的骆驼路线。一种是读取sql数据。一种是读取磁盘上的文件,然后与以前的sql数据进行比较。我需要运行路线1,根据是否导入任何内容,运行路线2Apache camel 直接读取文件和进程的驼峰,apache-camel,Apache Camel,我有两条平行的骆驼路线。一种是读取sql数据。一种是读取磁盘上的文件,然后与以前的sql数据进行比较。我需要运行路线1,根据是否导入任何内容,运行路线2 fromF("quartz2://mio/%s?cron={{route_1_cron}}", order). log("Running data import..."). to("sql:{{sql_select}}"). choice(). when(
fromF("quartz2://mio/%s?cron={{route_1_cron}}", order).
log("Running data import...").
to("sql:{{sql_select}}").
choice().
when(body().isNull()).
stop().
when(body().isNotNull()).
bean(Utility.class,"incomingSqlData").
choice().when(header("status").isEqualTo(true).
to("direct:start").stop();
到目前为止我很好。现在,在第二条路径上,如何从from(direct:start)开始,然后从其目录中读取文件?因为我不能有from(direct).from(“文件:…”),因为这将创建两个from路由。
使用from(“direct:start”).to(“file:…”)将尝试写入该文件
Tl:dr:我应该如何使用direct开始一条路线,然后读取一个文件?要展开@noMad17评论,可以使用内容丰富器。因此,您的
from(“direct:start”)
路线可以如下所示:
from("direct:start")
.pollEnrich("file:...", new MyAggregationStrategy())
....
这将提示您发送到读取文件
请注意,
AggregationStrategy
“用于合并原始交换和资源交换”,并且是可选的。如果未提供,则资源交换的主体(即读取文件产生的交换)将覆盖原始exchange。要扩展@noMad17注释,您可以使用内容充实器。因此,您的from(“direct:start”)
路线可以如下所示:
from("direct:start")
.pollEnrich("file:...", new MyAggregationStrategy())
....
这将提示您发送到读取文件
请注意,
AggregationStrategy
“用于合并原始交换和资源交换”,并且是可选的。如果未提供,则资源交换的主体(即读取文件产生的交换)将覆盖原始exchange。查看内容充实器和/或轮询充实:查看内容充实器和/或轮询充实: