2

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

4

2 回答 2

4

更新答案: 从 Camel 2.10 开始支持 Spring 批处理,

http://camel.apache.org/springbatch.html

本质上,Camel 中的 Spring Batch 组件将能够从路由中触发 Spring 批处理作业。

示例: from("direct:startBatch").to("spring-batch:myJob");其中“myJob”是在别处定义的春季批处理作业。

交换中的所有 Camel 标头都作为参数发送到 spring 批处理作业。

于 2012-05-18T19:57:59.080 回答
1

考虑一种情况,必须从文件夹中挑选并处理已删除的文件。apache camel 和 spring batch 的结合可以用最少的代码解决这种集成。使用简单的骆驼 DSL 代码。

Apache Camel 解决集成问题,Spring Batch 以批处理模式处理。

对于集成,需要 apache 骆驼路线,对于批处理,需要 spring 批处理作业。

更多细节,

将构建 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”传递给作业。

于 2017-08-22T14:05:30.957 回答