2016-10-14 99 views
7

我在Spring批处理中很新。任何人都可以帮助我解释Spring批处理中的Step,Tasklet和Chunk之间的区别。另外我还有一个疑问,如果我们想要平行进行一些步骤,春季批次的方式是什么。Spring批处理中的步骤,Tasklet和块之间的区别

+2

(HTTP [春季批步骤,微进程或块间决定]的可能的复制: //stackoverflow.com/questions/17143575/deciding-between-spring-batch-step-tasklet-or-chunks) –

+0

阅读SB文档。你所要求的是很好的解释 –

回答

14

那实际上是一个很好的问题。这里有一个配置示例:

<job id="sampleJob" job-repository="jobRepository"> 
    <step id="step1" next="step2"> 
     <tasklet transaction-manager="transactionManager"> 
      <chunk reader="itemReader" writer="itemWriter" commit-interval="10"/> 
     </tasklet> 
    </step> 
    <step id="step2"> 
     <tasklet ref="myTasklet"/> 
    </step> 
</job> 

你有一份工作,这份工作是由步骤组成的。大多数时候,这些步骤是连续的。您需要按照什么顺序定义您的工作必须按照以下步骤完成:先执行步骤1,然后执行步骤2,然后执行步骤3,如果执行步骤3失败,则可以执行步骤4,或者直接执行步骤5等。

什么在Step中完成由一个tasklet表示,他们完成任务。

在spring批处理中,您将主要执行面向块的处理:使用读取器,处理器和写入器。从官方文档:

组块为主的加工是指读取数据一次一个, 和事务中创建“块”,将写出, 边界

,但你可以制作你自己的tasklet,并将其设置在你的步骤中。例如,一个执行SQL查询的tasklet。 (示例在这里:Tasklet to delete a table in spring batch

所以,步骤是在一个作业中排序的,每个步骤都包含一个tasklet,它执行任务。其中一个tasklet(也可能是最常用的)是面向块的处理tasklet。

如果您好奇,这里是ChunkOrientedTasklet's doc。如您所见,它实现了Tasklet接口。

更多信息: http://docs.spring.io/spring-batch/reference/html/configureStep.html

并且是,弹簧批次parrallel处理是公制成,使用流量:http://docs.spring.io/spring-batch/reference/html/scalability.html

+0

这个答案对理解Step,Tasklet和Chunk的基本知识非常有帮助。谢谢 :) –

相关问题