스프링 배치 tasklet 예제

Spring Batch는 일부 메타데이터 테이블을 사용하여 일괄 처리 작업 정보를 저장합니다. 스프링 일괄 처리 구성에서 만들 수 있지만 위의 주석 코드에서 볼 수 있듯이 SQL 파일을 실행하여 수동으로 수행하는 것이 좋습니다. 보안 관점에서 스프링 일괄 처리 데이터베이스 사용자에게 DDL 실행 액세스를 제공하지 않는 것이 좋습니다. 항목 판독기에는 세 가지 필수 종속성이 있습니다. 첫 번째는 읽을 리소스이며, 이 리소스는 처리할 파일입니다. 두 번째 종속성은 LineTokenizer입니다. LineTokenizer에 대한 인터페이스는 문자열이 주어지면 매우 간단합니다. 제공된 문자열을 분할하여 결과를 래핑하는 FieldSet을 반환합니다. 필드 집합은 플랫 파일 데이터에 대한 스프링 일괄 처리의 추상화입니다. 이를 통해 개발자는 데이터베이스 입력과 거의 동일한 방식으로 파일 입력을 사용할 수 있습니다. 개발자가 제공해야 하는 것은 제공된 필드세트를 오브젝트에 매핑하는 FieldSetMapper(스프링 로우매퍼와 유사)입니다.

각 토큰의 이름을 LineTokenizer에 제공하기만 하면 ItemReader는 FieldSetMapper 인터페이스를 구현하는 플레이어매퍼에 필드세트를 전달할 수 있습니다. 개발자가 결과 집합을 인덱스 또는 필드 이름으로 Java 개체에 편안하게 매핑하는 것과 동일한 방식으로 FieldSet을 매핑하는 단일 메서드인 mapLine()이 있습니다. 이 동작은 JdbcTemplate에 전달 된 RowMapper와 유사한 의도와 디자인에 의한 것입니다. 아래에서 확인할 수 있습니다: 스프링 배치 응용 프로그램은 분할 기술을 사용하여 쉽게 크기를 조정할 수 있습니다. 이러한 기술을 사용하면 각 스레드와 작업 단계를 병렬로 실행할 수 있습니다. 스프링 일괄 처리에서 샘플 작업을 시작하는 가장 쉬운 방법은 IDE에서 단위 테스트를 열고 직접 실행하는 것입니다. 각 샘플에는 org.springframework.batch.samples 패키지에 별도의 테스트 사례가 있습니다. 테스트 사례의 이름은 [JobName] 기능테스트입니다. 스프링 일괄 처리에서 Tasklet은 단계 실행 전후에 리소스를 정리하거나 설정하는 것과 같이 단일 작업만 수행하도록 호출되는 인터페이스입니다. 이 예제에서는 일괄 처리 작업이 완료된 후 Tasklet을 사용하여 리소스(폴더)를 정리하는 방법을 보여 줍니다. 따라서 작업은 10초마다 실행되도록 예약됩니다. 실제로 첫 번째 시도에서 성공해야 하므로 두 번째 및 후속 시도는 JobInstanceAlreadyCompleteException을 통해 수행해야 합니다.

프로덕션 시스템에서 작업 세부 정보가 이 예외(예:

Mentalny Teatr Hipnozy > 스프링 배치 tasklet 예제