배치 다이어그램 예제
예를 들어 GPCDPDM에서 수정되지 않은 코드 조각을 살펴보겠습니다. CBL. 독자와 작성기에 대한 장에서페이징을 사용한 데이터베이스 입력에 대해 설명했습니다. DB2와 같은 많은 데이터베이스 공급업체는 온라인 응용 프로그램의 다른 부분에서도 테이블을 읽어야 하는 경우 문제를 일으킬 수 있는 매우 비관적인 잠금 전략을 가지고 있습니다. 또한 매우 큰 데이터 집합에 대해 커서를 열면 특정 공급업체에 문제가 발생할 수 있습니다. 따라서 많은 프로젝트는 데이터 읽기에 `실행 쿼리` 접근 방식을 사용하는 것을 선호합니다. 이 방법은 다음 예제에서 알 수 있듯이 반환해야 하는 전체 개체가 아니라 키를 반복하여 작동합니다. 스프링 배치에서 크게 영감을 받은 이 사양은 스프링 배치가 이미 지원하는 것과 유사한 기능을 제공합니다. 그러나 Spring Batch 3.0은 사양을 구현했으며 이제 표준을 준수하는 일괄 처리 작업의 정의를 지원합니다. JSR-352의 작업 사양 언어(JSL)를 사용하여 구성된 일괄 처리 작업의 예는 다음과 같습니다: TestExecutionListeners는 클래스 수준에서 선언되고 해당 작업은 각 테스트 메서드에 대한 단계 실행 컨텍스트를 만드는 것입니다. 예를 들어 백오프 정책은 선택한 방식으로 백오프를 자유롭게 구현할 수 있습니다. 스프링 일괄 처리에서 제공하는 정책은 모두 Object.wait()를 사용합니다.
일반적인 사용 사례는 기하급수적으로 증가하는 대기 기간으로 백오프하여 두 번의 재시도가 잠금 단계로 들어가고 모두 실패하는 것을 방지하는 것입니다. 이 목적을 위해 스프링 일괄 처리는 지수 백오프 정책을 제공합니다. 간단히 말해서, 일괄 처리는 컴퓨터가 종종 논스톱 순차적으로 작업 일괄 처리를 완료하는 프로세스입니다. 또한 디버깅 프로세스 중에 효율성을 위해 작은 부분에서 큰 작업을 계산하도록 하는 명령이기도 합니다. 가능한 경우 내부 유효성 검사를 구현합니다. 예를 들어 플랫 파일에는 파일의 레코드 합계와 키 필드의 집계를 알려주는 예고편 레코드가 있어야 합니다. 인구 조사 데이터를 구성하는 간단한 펀치 카드에서 컴퓨터의 작동 방법을 알 수 있는 데크에 이르기까지 많은 발전이 있었고, 이제는 사람이 전혀 필요하지 않은 자동화된 워크플로우 프로세스가 발전했습니다. 일괄 처리는 비즈니스 요구 사항을 충족하기 위해 더 많은 작업을 수행하는 데 도움이 될 수 있습니다.
Spring Batch는 XML 레코드를 읽고 Java 개체에 매핑하고 Java 개체를 XML 레코드로 작성하는 트랜잭션 인프라를 제공합니다. 다시 시도작업의 책임 중 일부는 실패한 작업이 새 실행으로 돌아올 때(일반적으로 새 트랜잭션에 래핑) 실패한 작업을 인식하는 것입니다.