SpringBatch基本概念

SpringBatch批处理框架架构

这里写图片描述

每个作业Job有1个或者多个作业步Step;
每个Step对应一个ItemReader、ItemProcessor、ItemWriter;
通过JobLauncher可以启动Job,启动Job时需要从JobRepository获取存在的JobExecution;
当前运行的Job及Step的结果及状态会保存在JobRepository中

SpringBatch中用到的主要领域对象

Job:作业。批处理中的核心概念,是Batch操作的基础单元。

Job Instance:作业实例。每个作业执行时,都会生成一个实例,实例会被存放在JobRepository中,如果作业失败,下次重新执行该作业的时候,会使用同一个作业实例;对于Job和Job Instance的关系,大家可以想象为Java类定义和Java对象实例的关系。

Job Parameters :作业参数。它是一组用来启动批处理任务的参数,在启动Job的时候,可以设置任何需要的作业参数,需要注意作业参数会用来标识作业实例,即不同的Job实例是通过Job参数来区分的。

Job Execution:作业执行器。其负责具体Job的执行,每次运行Job都会启动一个新的Job执行器。

Job Repository:作业仓库。其负责存储作业执行过程中的状态数据及结果。

Job Launcher:作业调度器。它会根据给定的JobParameters执行作业。

Step:作业步。Job的一个执行环节,多个或者一个Step组装成Job,封装了批处理任务中的一个独立的连续阶段。

Step Execution:作业步执行器。它负责具体step的执行,每次运行Step都会启动一个新的执行器。

Tasklet:Tasklet.Step中具体执行逻辑的操作,可以重复执行,可以设置具体的同步、异步操作等。

Execution Context:执行上下文。它是一组框架持久化与控制的key/value对,能够让开发者在Step Execution或Job Execution范畴保存需要进行持久化的状态。

Item:条目。一条数据记录。

Chunk:Item集合。它给定数量Item的集合,可以定义对Chunk的读操作、处理操作、写操作,提交间隔等。

Item Reader:条目读。其表示step读取数据,一次读取一条。

Item Processor:条目处理。用于表示item的业务处理。

Item Writer:条目写。用于表示step输出数据,一次输出一批。

命名空间

这里写图片描述

Job元素

批处理作业Job由一组Step组成,同时是作业配置文件的顶层元素。每个作业有自己的名字、可以定义Step执行的顺序,以及定义作业是否可以重启。

    <batch:job id="" 
               abstract="true" 
               incrementer="" 
               job-repository="" 
               parent="" 
               restartable=""></batch:job>

Job执行的时候会生成一个Job Instance(作业实例),Job Instance包含执行Job期间产生的数据以及Job执行的状态信息等;Job Instance通过Job Name(作业名称)和Job Parameter(作业参数)来区分;每次Job执行的时候都有一个Job Execution(作业执行器),Job Execution负责具体job的执行。

Job、Job Instance和Job Execution三者的关系:

这里写图片描述

一个Job可能有一到多个Job Instance。
一个Job Instance可能有一个到多个Job Execution。

Job Instance

Job Instance(作业实例)是一个运行期的概念,Job每执行一次都会涉及一个Job Instance。Job Instance来源可能有两种:一种是根据设置的Job Parameters从Job Repository(作业仓库)中获取一个;如果根据Job Parameters从Job Repository没有获取Job Instance,则新创建一个新的Job Instance。

Job Parameters

Job 通过Job Parameters来区分不同的Job Instance。简单的说Job Name + Job Parameters来唯一的确定一个Job Instance。

这里写图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值