Apr.04

Conceitos Básicos de Spring Batch!

Segue alguns conceitos importantes aprendidos durante os estudos sobre Spring Batch.

[ Conceitos Importantes ]

Processamento em Lotes: São rotinas muito utilizadas em mainframes que ocorrem em segundo plano e que geralmente podem ser executadas sem a intervenção do usuário.

Spring Batch: É um framework do projeto Spring que visa fornecer funções reutilizáveis para processamento e gerenciamento de dados em um determinado cenário. Quando a principal vantagem da sua utilização é que o programador pode se preocupar com a regra de negócio e deixar que o framework cuidará da parte de infraestrutura.

Batch: É um conjunto de JOBS que são executados em uma aplicação possuindo uma sequência / fluxo bem definido.

STEP: É um passo a ser realizado dentro de um determinado JOB, basicamente é o que realmente executa uma leitura, escrita ou envia informações ou seja, realiza a ação. Um Job pode ter um ou vários steps. Um step pode ser simples ou complexo dependendo do pedido do programador podendo ter poucos ou nenhum código dependendo da implementação utilizada.

JOB: É um conjunto de STEPS que juntos executam uma determinada tarefa do fluxo de processamento. Podemos dizer que o job possui um nome e que possui a ordem dos steps que o compõem.

Exemplo:

<job id=”TrocarLampada”>

<step id=”subirEscada” next=”retirarLampada”/>

<step id=”retirarLampada” next=”colocarLampadaNova”/>

<step id=”colocarLampadaNova” next=”descerEscada/>

<step id=”descerEscada” />

</job>

[ Principais Elementos do Spring Batch ]

ITEM READER : Abstração para qualquer fonte de dados que será utilizada como entrada em um STEP dentro do JOB, podendo ser criado de várias formas, implementando a interface ItemReader do Spring ou estendendo as classes  JdbcCursorItemReader, FlatFileItemReader,JmsItemReader.

ITEM WRITER: Abstração de saída de um Step que ao contrario do ItemReader que só lê o ItemWriter escreve ou envia informações para uma fonte de dados. Ele pode ser criado apartir da interface ItemWriter ou extendendo as classes FlatFileItemWriter, HibernateItemWriter, IBatisBatchItemWriter.

Estes dois elementos estão presentes em um step, cada step possui um ItemWriter e um ItemReader, ou seja cada step realiza duas ações.

Apartir do Batch 2.x temos também um elemento chamando ITEM PROCESSOR que está no mesmo nível do Writer e Reader e é utilizado quando precisamos transformar um item antes de grava-lo.

[ Propriedades do JOB  ]

Um job é composto por Job Instance e job Executions:

JOB INSTANCE: Cada job instance pode ter vários multiplas execuções no entanto um JOB só pode ter uma Job Instance.

Vamos supor que um job falhou em um determinado passo, caso utilizemos um novo Job Instance iremos recomeçar o job desde o inicio e se utilizarmos o mesmo, ele começará de onde parou, de onde ocorreu a falha.

JOB PARAMETERS: São o que difere um Job Instance de outro, os parametros que são passados para ele, ex: uma data de execução, e etc.

Então temos que: JOB INSTANCE = JOB + JOB PARAMETERS;

[ Propriedades do STEP ]

Cada step dentro de um JOB possui um StepExecution que pertence a um exclusivo JobExecution. Cada vez que um passo é executado o novo StepExecution é criado.

Spring Batch
Share this Story:
  • facebook
  • twitter
  • gplus

Comments(1)

  1. José Ricardo
    2203 days ago

    Excelente material, gostei do artigo bem explicativo.

Leave a comment

Comment