springbatch+schedule
spring-batch批量处理框架
使用场景
典型的批处理程序通常:
-
从数据库,文件或队列中读取大量记录。
-
以某种方式处理数据。
-
以修改后的形式写回数据。
Spring Batch自动执行此基本批处理迭代,提供了将一组类似的交易作为一组处理的功能,通常在脱机环境中无需任何用户交互。批处理作业是大多数IT项目的一部分,Spring Batch是唯一提供可靠的企业级解决方案的开源框架。
业务场景
-
定期提交批处理
-
并行批处理:作业的并行处理
-
分阶段的企业消息驱动的处理
-
大规模并行批处理
-
失败后手动或计划重启
-
顺序处理相关步骤(扩展了工作流程驱动的批次)
-
部分处理:跳过记录(例如,回滚时)
-
整批交易,适用于小批量或现有存储过程/脚本的情况
技术目标
-
批处理开发人员使用Spring编程模型:专注于业务逻辑,并让框架处理基础结构。
-
在基础结构,批处理执行环境和批处理应用程序之间明确分离关注点。
-
提供通用的核心执行服务作为所有项目都可以实现的接口。
-
提供可以直接使用的核心执行接口的简单和默认实现。
-
通过在所有层中利用spring框架,轻松配置,定制和扩展服务。
-
所有现有的核心服务应易于替换或扩展,而不会影响基础架构层。
-
提供一个简单的部署模型,其架构JAR与使用Maven构建的应用程序完全分开。
说明: 熟悉spring的Quartz的同学应该知道,通过定时任务去调度对应的job去执行具体的任务,这里的批处理可以简单理解成这里的job;

看上面这张图来理解:
jobRepository: 定义 Job 时,需要指定一个 JobRepository,用来存储 Job 在运行过程中的状态信息,处理失败重试等功能;
JobLauncher: job的执行者
job: 具体任务,由一个或者多个Step组成
Step:Step中涉及到ItemReader、ItemProcessor、ItemWriter,这三个接口顾名思义就是数据读取,处理以及存储
具体demo代码见GitHub: https://github.com/zlAdmin/springboot-batch
代码启动步骤: 1.在application.yml文件中配置数据库连接
2. 初始化sql,在resource/metadata目录下

浙公网安备 33010602011771号