Apache Camel与Spring Batch集成

时间:2012-05-18 16:40:22

标签: spring apache-camel spring-batch

Apache Camel是否支持Spring Batch? 我是使用Camel路线的批次。现在我们想迁移到Spring Batch,但不确定我的驼峰路由是否可以与Spring批量集成。

2 个答案:

答案 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"。