1.batch jobRepository在配置作业仓库时候有2个类型
如果引用
org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean
则使用机器内存管理springbatch信息,容易内存溢出。
推荐使用
org.springframework.batch.core.repository.support.JobRepositoryFactoryBean
但是需要手动建库,用于存储springbatch基础信息
2.怎么手动建库(我这是mysql)
解压SpringBatch的core包,会有很多sql文件,找到对应数据库类型的,比如我 这里是
schema-mysql.sql,直接在数据库中建表。
注意:建表时候可能会遇到sql报错:Unknown storage engine ‘InnoDB‘,这是数据库使用的引擎不一样导致的。可以把这个sql文件中的ENGINE=’InnoDB’改为ENGINE=MyISAM; 全部替换后再次支持即可
3.怎么配置jobRepository
4.怎么改为使用内存管理batch的信息
5.到这里,表生成了,数据存进去了,哪各个表存的是什么数据呢?
Table 1、BATCH_JOB_INSTANCE(作业实例表,存放JOB的实例信息)
字段名称
字段 类型
字段说明
JOB_INSTANCE_ID
bigint
主键 ,作业实例编号,根据BATCH_JOB_SEQ自动生成
VERSION
bigint
版本号
JOB_NAME
varchar
作业名称 即在配置文件定义的JobId字段内容
JOB_KEY
varchar
作业标识,根据作业参数序列化生成的标识,需要注意通过JOB_NAME+JOB_KEY
能够唯一区分一个作业实例
注意:JOB_KEY——如果同一个Job,则JOB_KEY一定不能相同,籍作业参数不能相同,如果不是同一个Job,JOB_KEY可以相同,也就是作业参数可以相同
Table 2、BATCH_JOB_EXECUTION_PARAMS(作业参数表,用于存放每个JOB执行的时候的参数信息,即对于的JOB实例)
字段名称
字段类型
字段说明
JOB_EXECUTION_ID
bigint
外键ID,作业执行器ID编号,一个作业实例可能又会多行参数记录
TYPE_CD
varchar
参数的类型,总共有四种 String、Date、Double、Long
KEY_NAME
varchar
参数的名字
STRING_VAL
varchar
参数如果是String,就存放String类型的参数值
DATE_VAL
datetime
参数如果是Date,就存放Date类型的参数值
LONG_VAL
bigint
参数如果是Long,就存放Long类型的参数值
DOUBLE_VAL
double
参数如果是Double,就存放Double类型的参数值
IDENTIFYING
char
用于标识作业参数是否标识作业实例
Table 3、BATCH_JOB_EXECUTION(作业执行器表,存放当前作业的执行信息,创建时间、执行时间、执行结束时间、执行状态、执行Job实例等信息)
字段名称
字段类型
字段说明
JOB_EXECUTION_ID
bigint
主键
VERSION
bigint
版本号
JOB_INSTANCE_ID
bigint
作业实例ID
CREATE_TIME
datetime
作业执行器创建时间
START_TIME
datetime
作业执行器开始执行时间
END_TIME
datetime
作业执行器结束时间
STATUS
varchar
作业执行器执行的状态:COMPLETED、FAILED、STARTING、UNKNOW等
EXIT_CODE
varchar
作业执行器退出代码 如:UNKNOW、EXECUTING、COMPLETED等
EXIT_MESSAGE
varchar
作业执行器退出信息,通常存放异常信息
LAST_UPDATED
datetime
本条记录上次更新时间
JOB_CONFIGURATION_LOCATION
varchar
作业配置文件的位置
运用BATCH_JOB_INSTANCE和BATCH_JOB_EXECUTION两张表联合查询Job信息
SELECT bi.JOB_NAME,bi.JOB_KEY,be.CREATE_TIME,be.START_TIME,be.END_TIME,be.`STATUS`
FROM
batch_job_instance bi
LEFT JOIN batch_job_execution be ON bi.JOB_INSTANCE_ID = be.JOB_INSTANCE_ID
where bi.JOB_NAME=’billJob’
Table 4、BATCH_JOB_EXECUTION_ Table 1、(作业执行上下文表,存放上下文信息)
字段名称
字段类型
字段说明
JOB_EXECUTION_ID
bigint
外键ID,作业执行器编号
SHORT_CONTEXT
varchar
作业执行器上下文字符串格式
SERIALIZED_CONTEXT
text
序列化的作业执行上下文
Table 5、BATCH_JOB_EXECUTION_SEQ表(用于BATCH_JOB_EXECUTION和BATCH_JOB_EXECUTION_CONTEXT提供主键生成)
Table 6、BATCH_JOB_SEQ表(用于BATCH_JOB_INSTNCE 和BATCH_JOB_EXECUTION_PARAMS提供主键生成)
Table 7、BATCH_STEP_EXECUTION(作业步执行器,存放每个Step执行器的信息:开始时间、执行完成时间、读/写次数等)
字段名称
字段类型
字段说明
STEP_EXECUTION_ID
bigint
主键
VERSION
bigint
版本
STEP_NAME
varchar
作业步的名称
JOB_EXECUTION_ID
bigint
作业执行器ID
START_TIME
datetime
作业步执行器执行开始时间
END_TIME
datetime
作业步执行器执行结束时间
STATUS
varchar
作业步执行器执行状态
COMPLETED, STARTING, STARTED, STOPPING, STOPPED, FAILED, ABANDONED, UNKNOWN
存在于org.springframework.batch.core.BatchStatus
COMMIT_COUNT
bigint
事务提交次数
READ_COUNT
bigint
读数据次数
FILTER_COUNT
bigint
过滤掉的数据次数
WRITE_COUNT
bigint
写数据次数
READ_SKIP_COUNT
bigint
读数据跳过的次数
WRITE_SKIP_COUNT
bigint
写数据跳过的次数
PROCESS_SKIP_COUNT
bigint
处理数据跳过的次数
ROLLBACK_COUNT
bigint
事务回滚的次数
EXIT_CODE
varchar
作业步执行器退出编码,状态码存在于org.springframework.batch.core.ExitStauts
EXIT_MESSAGE
varchar
作业步执行器退出描述,一般是异常信息
LAST_UPDATED
datetime
本条记录上次更新时间
Table 8、BATCH_STEP_EXECUTION_CONTEXT(作业步执行器上下文,存放作业步执行的上下文信息)
字段名称
字段类型
字段说明
STEP_EXECUTION_ID
bigint
作业步执行器ID
SHORT_CONTEXT
varchar
作业步执行器上下文字符串格式
SERIALIZED_CONTEXT
text
序列化作业步执行器上下文
Table 9、BATCH_STEP_EXECUTION_SEQ(用于BATCH_STEP_EXECUTION和BATCH_STEP_EXECUTION_CONTEXT提供主键)
整理不易,转载请带上本文链接,谢谢、