2016-10-14 176 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的基本知識非常有幫助。謝謝 :) –

相關問題