Apache Camel是否支持Spring Batch? 我是使用Camel路线的批次。现在我们想迁移到Spring Batch,但不确定我的驼峰路由是否可以与Spring批量集成。
答案 0 :(得分:4)
更新回答: 从Camel 2.10开始支持Spring批处理,
http://camel.apache.org/springbatch.html
基本上,Camel中的Spring Batch组件将能够从路径中触发Spring批处理作业。
实施例:
from("direct:startBatch").to("spring-batch:myJob");
其中“myJob”是其他地方定义的弹簧批处理作业。
交换中的所有Camel标头都作为参数发送到弹簧批处理作业。
答案 1 :(得分:1)
考虑一个案例,必须从文件夹中挑选并处理删除的文件。 apache camel和spring batch的组合可以用最少的代码解决这种集成。使用简单的骆驼DSL代码。
Apache Camel解决集成问题,Spring Batch以批处理模式处理。
对于集成apache camel路由是必需的,并且对于批处理,需要弹簧批处理作业。
更多详情,
将构建Apache Camel Route以选择任何已删除的csv文件并触发弹出批处理。
**注意:**我没有提供Spring Batch Job将做什么的详细信息。假设它只是一个JOB来处理文件。
@Value("${dir.location}")
private String dropLocation;
@Override
public void configure() throws Exception {
from(
"file:"
+ dropLocation
+ "?delay=550&include=.*.csv&moveFailed=error")
.to("spring-batch:anyFileProcessingJob?jobLauncherRef=fileProcessingJobLauncher");
}
Apache Camel配置了上面的路由,以选择丢弃在文件夹中的任何文件" dropLocation"。 Camel将密切关注文件夹,如果删除任何文件,将触发Spring Batch JOB。
此处任何文件都放在配置文件夹" dropLocation",camel将触发作业anyFileProcessingJob,作业启动参考将是fileProcessingJobLauncher。
" fileProcessingJobLauncher"将运行批处理作业,如果需要,可以将必要的参数传递给" fileProcessingJobLauncher"。