Java资源分享网 - 专业的Java学习网站 学Java,上Java资源分享网
SpringBatch参考文档中文版 PDF 下载
匿名网友发布于:2024-03-29 10:01:34
(侵权举报)
(假如点击没反应,多刷新两次就OK!)

SpringBatch参考文档中文版  PDF 下载  图1

 

 

 

资料内容:

3.1.1 JobInstance

 

JobInstance涉及到一个运行逻辑job的概念。让我们考虑一下,在一天结束时运行一次批处理任
务,
类似上述图表中的”EndOfDay”任务。有一个统一的”EndOfDay”任务,但是job的每个独立运行都必
须分开跟踪监控。在这个例子中,每天会有一个逻辑的JobInstance。例如,在11日运行一次,
12日运行一次。如果11日第一次运行失败了,第二天再运行一次,这仍然是11日的运行(通
常也和处理的数据对应起来,意味着处理的是11日的数据等等)。因此,每个JobInstance能有
多次执行(JobExection的更多详细信息将在下文讨论),而对应于在特定时间运行特定的Job
JobParameter只有一个JobInstance
JobInstance的定义完全与加载的数据无关,数据的加载方式只与ItemReader的实现方式相关。例
如在EndOfDay场景中,可能有一个名为”effective data”或是”schedule data”的数据列用来
表示数据所属日期。因此,11日运行只会加载属于1日的数据,12日运行只会加载2日的数据。因
为这更像是一个业务决定,所以留给ItemReader去处理。另外,使用相同的JobInstance可以决定
是否使用前一次执行使用的状态(例如ExecutionContext,下文讨论)。使用新的JobInstance
味着从头开始,而使用存在的instance通常意味着从离开的地方开始
 
3.1.2 JobParameters
讨论完JobInstanceJob之间的区别,自然要开始讨论如何区分一个JobInstance与另一个
JobInstance”。答案是:JobParametersJobParamters是一组用来启动批处理任务的参数,
他们被用于在运行过程中标记识别或是引用数据:
在上面的例子中一个job有两个实例,一个是11日以01-01-2008的参数启动运行,一个是12
01-02-2008的参数启动运行。因此可以这样定义:JobInstance = Job + JobParameter
这让开发者有效地控制JobInstance,因为开发者可以有效控制输入给JobInstance的参数。
注意:并非所有的job需要设定参数来对JobInstance进行标识,默认情况下应该设定参数,在该框架中也允许带有参数提交的job
不做对JobInstance进行标识的处理工作。
 
3.1.3 JobExecution
一个JobExecution的概念是对于运行一次Job。一次执行可能成功也可能失败,但是只有这次执行
完全成功后对应的JobInstance才会被认为是完成了。以之前的EndOfDay任务为例,01-01-2008
第一次运行生成的JobInstance失败后,以相同的参数(01-01-2008)再次运行,一个新的
JobExecution会被创建,但是仍然是同一个JobInstance
Job定义了任务是什么以及如何启动,JobInstance是纯粹的组织对象用来执行操作组织在一起,主
要目的是开启正确的重启语义,而JobExecution是运行过程中状态的主要存储机制,有着多得多的
属性需要控制与持久化: