Spring batch学习 持久化表结构详解(2)

摘要:
#从上一篇文章继续。本文讨论了持久性需求表batch_job_execution、batch_job_execution_context、batch__job_exection_params、batch_ job_exement_seq、batch_1job_exement、batch_3job_sexecution_seq

#接上一篇 这一篇讲一下持久化需要表

batch_job_execution,   

batch_job_execution_context,

batch_job_execution_params,

batch_job_execution_seq,

batch_job_instance,

batch_job_seq,

batch_step_execution,

batch_step_execution_context,

batch_step_execution_seq

_seq结尾的三张表,维护batch_job_instance、batch_job_execution、batch_step_execution的sequence id。

batch_job_instance表     joninstance  = jobname+jobparameters
第一次运行会产生jobinstance和jobExcution
每次执行都生成jobExcution 在同一时刻只能有一个jobExcution执行jobinstance
JOB_INSTANCE_ID:JOB ID由batch_job_seq分配 
VERSION:job版本号,同一个job执行多次时使用
JOB_NAME:job名称,与spring配置一致
JOB_KEY:对job参数的MD5编码,正因为有这个字段的存在,同一个job如果第一次运行成功,第二次再运行会抛出JobInstanceAlreadyCompleteException异常。
batch_job_execution_params表:记录每个job的参数
JOB_EXECUTION_ID 由batch_job_execution_seq分配
TYPE_CD  参数类型 对应jobParameters中的参数类型

KEY_NAME 参数key值

STRING_VAL 参数值

DATE_VAL 参数值

LONG_VAL 参数值

DOUBLE_VAL 参数值

IDENTIFYING 是否mD5 trueMD5
batch_job_execution与batch_step_execution表
JOB_EXECUTION_ID:sequence id
VERSION:版本
JOB_INSTANCE_ID:参照batch_job_instance中的JOB_INSTANCE_ID字段
CREATE_TIME 
START_TIME
END_TIME
STATUS:job运行的状态  值来自org.springframework.batch.core.BatchStatus 
EXIT_CODE:退出码
EXIT_MESSAGE 
LAST_UPDATED:最后一次更新时间 
JOB_CONFIGURATION_LOCATION 
batch_step_execution 另外有
COMMIT_COUNT:提交次数
READ_COUNT:读取item数
FILTER_COUNT:被过滤的item数
WRITE_COUNT:写入itemWriter的次数
READ_SKIP_COUNT
WRITE_SKIP_COUNT
PROCESS_SKIP_COUNT 
batch_job_execution_context与batch_step_execution_context表
保存job和step运行中的中间数据, 下次运行时可以恢复
STEP_EXECUTION_ID:step id
SHORT_CONTEXT:json化的ExecutionContext,如
{
    "map": {
        "entry": {
            "string": "FlatFileItemReader.read.count",
            "int": 10
        }
    }
}
SERIALIZED_CONTEXT:被序列化之后的ExecutionContext

SERIALIZED_CONTEXT:被序列化之后的ExecutionContext

大概的表结构如上。

免责声明:文章转载自《Spring batch学习 持久化表结构详解(2)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇参加了两天QCon会议,你有什么感觉?zabbix监控xenserver下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

可持久化 trie 的简单入门

可持久化 $trie$ ....又是一个表里不一的东西..... 可持久化 $trie$ 的介绍: 和主席树类似的,其实可持久化就是体现在前缀信息的维护上(搞不懂这怎么就叫做可持久化了...) $trie$ (字典树)大家应该都知道,就是一棵用来做字符串匹配的树, 但是!在这里,可持久化 $trie$ 就是完全不一样的东西了... 基本上(我做过的题),可...

rabbitmq进阶

目录 消息传递 过期时间(TTL) 死信队列 延迟队列 优先级队列 RPC实现 持久化 生产者确认 消费端要点 消息传输保障 消息传递 mandatory mandatory=true,如果交换器无法根据自身的类型和路由键找到一个符合条件的队列,RabbitMQ会调用 Basic.Return 命令将消息返回给生产者,生产者通过调用 chann...

Python 持久化管理之 Pickle/ZODB

1.对象持久化 如果希望透明地存储 Python 对象,而不丢失其身份和类型等信息,则需要某种形式的对象序列化: 它是一个将任意复杂的对象转成对象的文本或二进制表示的过程。同样,必须能够将对象经过序列化后的形式恢复到原有的对象。 在 Python 中,这种序列化过程称为 pickle,可以将对象 pickle 成字符串、磁盘上的文件或者任何类似于文件的对象...

使用docker容器运行MySQL数据库并持久化数据文件

1、下载mysql镜像 # docker pull mysql 2、启动mysql容器 # docker run -itd -v /data:/var/lib/mysql -p 33060:3306 --name mysqldb mysql bash WARNING: IPv4 forwarding is disabled. Networking will...

vuex数据持久化存储

  想想好还是说下vuex数据的持久化存储吧。依稀还记得在做第一个vue项目时,由于刚刚使用vue,对vue的一些基本概念只是有一个简单的了解。当涉及到非父子组件之间通信时,选择了vuex。只是后来竟然发现,刷新页面,数据去哪了???一脸懵逼。其实vuex本质上只是一个公共变量,是存储在浏览器内存中的,刷新页面,浏览器内存重置,数据也会被清空。如果要做数据...

XAF 如何:映射数据库视图到持久化类

How to: Map a Database View to a Persistent Class(如何:映射数据库视图到持久化类) http://documentation.devexpress.com/#Xaf/CustomDocument3281 代码 首先创建一个结构体,结构体中的属性为要绑定的视图列    public struct MyVie...