添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Job Repository来存储Job执行期的元数据,并提供两种默认实现。一种是存放在内存中,默认实现类为MapJobRepositoryFactoryBean;另一种是存入在数据库中。

一、配置 Memory Job Repository

    <!--定义作业仓库 Job执行期间的元数据存储在内存中-->
    <bean id="jobRepository" class="org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean">
    </bean>

举例: 创建一个简单的Spring Batch项目(一)_人……杰的博客-CSDN博客

二、配置DB Job Repository

data-source:定义数据源,默认dataSource transaction-manager:定义事务管理器 isolation-level-for-create:定义创建Job Execution时候的事务隔离级别,避免多个Job Execution执行一个Job Instance,默认SERIALIZABLE table_prefix:定义使用的数据库表的前缀为BATCH_,默认BATCH_ max-varchar-length:定义varchar的最大长度为1000,默认值为2500 <batch:job-repository id="jobRepository" data-source="dataSource" transaction-manager="transactionManager2" isolation-level-for-create="SERIALIZABLE" table-prefix="BATCH_" max-varchar-length="1000"/> <!--数据库的事务管理器--> <bean id="transactionManager2" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!--数据源--> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://127.0.0.1:3306/spring_batch_demo2</value> </property> <property name="username" value="root"></property> <property name="password" value="12345"></property> </bean>

举例: 配置DB Job Repository 项目举例(三)_人……杰的博客-CSDN博客

我们设置为3,也就是说当一条数据操作失败,那我们会对这条数据进行重试3次,还是失败就是 当做失败了, 那么我们如果有 配置 skip(推荐 配置 使用),那么这个数据失败记录就会留到给 skip 来处理。数据处理器,是我们自定义的,里面主要是包含我们对数据处理的业务逻辑,并且我们设置了一些数据校验器,我们这里使用 JSR-303的Validator来作为校验器。首先,在进入实例教程前,我们看看这次的实例里,我们使用 spring boot 整合 spring batch 框架,要编码的东西有什么? 1、为方便开发,本程序所用框架为 spring boot+mybatis,同时mybatis还集成了 generator插件;如果对这些开发环境不熟悉,建议先查询相关资料,搭建 spring boot+mybatis环境,再集成 spring batch 。 2、在 配置 job 、step等 spring batch 的bean时,用的是java config 方式 ,如想用xml 方式 配置 ,可参考之前... import org. spring framework. batch .core. Job ; import org. spring framework. batch .core. Job Execution; import org. spring framework. batch .core. Job Parameters; import org. spring framework. batch .core.launch.Jo 在默认 配置 下,当我们在oracle数据库上执行 spring batch 时会报"ORA-08177: 无法连续访问此事务处理"的错误,在网上查找资料,显示是因为 spring batch Job Repository 默认的事务级别为“ISOLATION_SERIALIZABLE”,需要调整为“ISOLATION_READ_COMMITTED”才可以(具体为啥需要调整数据库事务级别还不是很清楚,需要找时间再研究清楚) 那么下一步我们自定义自己的 Job Repository ,通过查看官方文档([ spring .io](h. Job Repository 存储执行期的元数据,提供两种默认实现,一种是存放在内存中,默认实现类为:Map Job Repository FactoryBean。在xml中的 配置 如下: <bean id=" job Repository " class="org. spring framework. batch .core. repository .support.Map Job Repository FactoryBe 1、什么是 Spring Batch 1.1 介绍1.2 架构组件分类(应用层):包含开发者应用 Spring - batch 编写的所有批处理作业和自定义代码; Batch Core(核心层):包含加载和控制批处理作业所必需的核心类,它包含了 Job ,Step, Job Launcher的实现;(基础架构层):基础架构层包含了Reader(ItemReader),Writer(ItemWriter),Services可以被应用层和核心层使用;1.3 优势丰富的开箱即用组件 开箱即用组件包括各种资源的读、写。 此系列博客皆为学习 Spring Batch 时的一些笔记; Spring Batch Job 在运行时有很多元数据,这些元数据一般会被保存在内存或者数据库中,由于 Spring Batch 在默认 配置 是使用HSQLDB,也就是说在 Job 的运行过程中,所有的元数据都被储存在内存中,在 Job 结束后会随着进程的结束自动消失;在这里我们推荐 配置 Job Repository 去使用MySQL。 在这种情况... Spring Batch 支持使用分区来读取数据库中的数据并并行处理。在讲 Spring Batch 使用分区读取数据库之前先介绍下Enable Batch Processing。