您的位置:首页 > 教育 > 锐评 > Spring Batch

Spring Batch

2024/10/6 0:31:28 来源:https://blog.csdn.net/weixin_43732943/article/details/142005742  浏览:    关键词: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版本相同

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com