当前位置: 首页 > news >正文

Spring Batch

Spring Batch

请添加图片描述
Job instance(作业实例)
当作业运行时,会创建一个Job Instance(作业实例),它代表作业的一次逻辑运行,可通过作业名称与作业标识参数进行区分。
比如一个业务需求: 每天定期数据同步,作业名称-daily-sync-job 作业标记参数-当天时间
Job Execution(作业执行对象)
当作业运行时,也会创建一个Job Execution(作业执行器),负责记录Job执行情况(比如:开始执行时间,结束时间,处理状态等)。

Job Instance = Job名称 + 识别参数
Job Instance 一次执行创建一个 Job Execution对象
完整的一次Job Instance 执行可能创建一个Job Execution对象,也可能创建多个Job Execution对象

入门案例-H2版

导入依赖

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.3</version><relativePath/>
</parent>
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-batch</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--内存版--><dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency></dependencies>

测试方法

@Component
public class JobDemo1 {//作业启动器@Autowiredprivate JobLauncher jobLauncher;//Job构造工厂(构建job对象)@Autowiredprivate JobBuilderFactory jobBuilderFactory;//step构造工厂(构建step对象)@Autowiredprivate StepBuilderFactory stepBuilderFactory;//构造一个step对象执行的任务@Beanpublic Tasklet tasklet(){return new Tasklet() {@Overridepublic RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception {//要执行逻辑  step步骤执行逻辑System.out.println("hello spring batch");return RepeatStatus.FINISHED;}};}//构造一个step对象@Beanpublic Step step1(){//tasklet指step执行逻辑return stepBuilderFactory.get("step1").tasklet(tasklet()).build();}//构造job对象//start(step1).next(step2)@Beanpublic Job job(){return jobBuilderFactory.get("hello-job").start(step1()).build();}
}

启动类

//启动springBatch
@EnableBatchProcessing
@SpringBootApplication
public class SpringbootApplication {public static void main(String[] args) {SpringApplication.run(SpringbootApplication.class, args);}
}

入门案例-MySQL版

依赖

 <!-- <dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope>
</dependency> --><dependency><groupId>org.mariadb.jdbc</groupId><artifactId>mariadb-java-client</artifactId><version>2.7.2</version>
</dependency>

application-dev.yaml
此处测试时并没有自动创建表

server:port: 8896spring:datasource:username: rootpassword: rooturl: jdbc:mariadb://ip地址:3306/springbatch?serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=truedriver-class-name: org.mariadb.jdbc.Driver# 初始化数据库,文件在依赖jar包中sql:init:schema-locations: classpath:org/springframework/batch/core/schema-mysql.sql#mode: alwaysmode: never

其余代码与H2版本相同


http://www.mrgr.cn/news/21703.html

相关文章:

  • css 个人喜欢的样式 速查笔记
  • Visual Studio Code:让你的工作效率飞升的秘密武器
  • 【数据结构】单链表的应用
  • MES系统如何支持企业进行数字化转型
  • tabBar设置底部菜单选项以及iconfont图标
  • Java stream使用与执行原理
  • Spring Boot详解
  • 电子电气架构---私有总线通信和诊断规则
  • 【全网最全】2024年数学建模国赛B题31页完整建模过程+25页成品论文+matlab/python代码等(后续会更新
  • 使用shell脚本安装mysql8,进行主从备份配置
  • 如何设计实现完成一个FPGA项目
  • 三维激光扫描点云配准外业棋盘的布设与棋盘坐标测量
  • AI预测福彩3D采取888=3策略+和值012路或胆码测试9月7日新模型预测第80弹
  • 【JavaScript】异步操作:Promise对象
  • 宠物浮毛对身体危害竟这么大?再不预防就来不及了
  • 项目——负载均衡OJ
  • 【JVM】JVM栈帧中的动态链接 与 Java的面向对象特性--多态
  • 2024数学建模国赛选题建议+团队助攻资料(已更新完毕)
  • LCP 485. 最大连续 1 的个数[lleetcode -11]
  • MapSet之二叉搜索树