求Spring Batch与Spring Cloud Data Flow相关教程及作业编排方案
Spring Cloud Data Flow 作业编排实操指南
适配说明
你已有Spring Batch使用经验的前提下,上手SCDF不需要重构原有作业逻辑,仅需少量适配配置即可满足需求,具体实现方案如下:
1. 多作业Jar包适配规则
- 你原有的Spring Batch作业仅需添加
spring-cloud-starter-task依赖,打包为可执行Jar即可直接作为SCDF的Task组件注册使用 - 同一Jar包内包含的多个Job,不需要拆分Jar,只需要在触发作业时传入启动参数
--spring.batch.job.name=指定Job名称,即可精准调用Jar内的对应作业 - 独立Jar包的作业直接按单个Task组件注册即可
2. 串行作业编排实现
需要Job1、Job2、Job3按顺序执行的需求,直接使用SCDF原生的*组合任务(Composed Task)*即可实现:
- 编排语法直接写
job1-task && job2-task && job3-task,&&代表前一个任务执行成功后才会触发下一个任务,完全符合串行执行要求
如果需要配置失败降级分支,可使用
||符号定义异常跳转逻辑,无需额外开发调度代码
3. Job重启功能配置
重启能力完全兼容你已熟悉的Spring Batch原生机制:
- SCDF会自动关联你配置的Spring Batch JobRepository数据源,重启时会自动识别上一次作业执行的断点,从失败的Step处恢复执行,不需要额外开发逻辑
- 手动重启可直接在SCDF控制台的任务执行记录页面,选中对应失败的作业实例点击重启按钮即可,也可以通过SCDF提供的REST API调用
/tasks/executions/{执行ID}/restart触发重启
4. 作业运行详情查询
所有作业的运行数据都会持久化到Spring Batch元数据表和SCDF任务元数据表中,你可以直接在SCDF控制台查看到全量运行信息:
- 每个Job的执行状态、启动/结束时间、退出码、执行参数
- 每个Job对应的Step执行明细、读写统计、异常栈信息
- 作业全量运行历史,包括历次重启的执行轨迹和参数变更记录
你原有基于Spring Batch元数据表的自定义查询逻辑可以完全复用,不需要调整。
5. 关键配置注意事项
- 同一Jar包下的多个Job,只需要注册一次Jar地址,后续编排时为不同的任务实例传入不同的
--spring.batch.job.name参数即可区分调用 - 所有作业使用的数据源需要和SCDF、Spring Batch JobRepository的数据源保持一致,否则重启、运行记录查询功能会出现异常
- 开启配置项
spring.cloud.task.executionid.enabled=true,让SCDF任务执行ID与Spring Batch Job执行ID自动关联,方便日志排查和问题定位
内容的提问来源于stack exchange,提问作者Jeff Cook
相关产品推荐
相关产品推荐

