1 Spring Batch简介
Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。
1、批处理定期提交。2、并行批处理:并行处理工作。3、企业消息驱动处理。4、大规模的并行处理。5、手动或是有计划的重启。6、局部处理:跳过记录(如:回滚)。
2 Spring Batch中涉及到一些重要的概念
JobLauncher:Job启动器,其作用就是绑定一组JobParameters到Job上,然后运行该Job。
Job:配置批处理任务,该对象主要有两个作用:第一是Step的容器,配置该批处理任务需要的Step,以及他们之间的逻辑关系。第二是配置该批处理任务的特征,比方说名字,是否可重启,以及指定对JobParameters的验证规则等。
Step:定义批处理任务中一个独立的逻辑任务处理单元。基本上的业务逻辑处理代码都是封装在Step中的。Step有两种实现形式,一种是Tasklet形式的,这种形式非常自由,开发人员只需要实现Tasklet接口,其中的逻辑完全有自己决定,另一种是Chunk-Oriented形式的,这种形式定义了一个Step的流程必须是“读-处理(可选)-写”,当然Spring Batch也对每一个步骤提供了接口ItemReader, ItemProcessor,ItemWriter还有很多常用的默认实现(读文件,读数据库,写文件,写数据库等等)。每一个Step只能由一个Tasklet或者一个Chunk构成。
JobRepository[rɪ'pɑzɪtərɪ]:为Spring Batch的运行数据提供一种持久化机制。主要有两种实现:基于内存的存储和基于数据库的存储。其为所有的运维数据的提供CRUD的操作接口,并为所有的操作提供事务支持。
JobExplorer [ɪk'splɔːrə]:为客户提供接口用来检索正在运行或已经运行的Job和Step信息。
当一个Job启动后,会涉及到一下几个概念:
JobInstance:Job的一个实例,一个Job可以有多个JobInstance,多个JobInstance之间依靠JobParameters加以区分(用MessageDigest将JobParameters以MD5的方式编码,得到JobKey)。
JobParameters:Job的运行时参数,维护JobParameter列表,可以区分同一Job的不同JobInstance。Spring Batch为每个JobParameter提供了一个布尔型标志位,指定某个JobParameter不参与JobInstance的区分。
JobExecution:JobInstance的一次运行,JobExecution记录了一个JobInstance在一次运行时的发生的所有信息。可以支持Restart等Spring Batch特性。
StepExecution:类似于JobExecution,表示Step的一次运行。
3 S
Spring Batch 来自淘豆网www.taodocs.com转载请标明出处.