inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Spring Batch 입문: 3시간 만에 끝내는 대용량 처리의 기초

[실습] Tasklet 인터페이스로 단일 배치 작업 처리하기

[참고] Tasklet 인터페이스로 단일 배치 작업 처리 수업에 나온 코드 돌리는 방법

해결된 질문

77

쿠카이든

작성한 질문수 16

2

package com.system.batch.sy_batch_system.ch03;

import lombok.RequiredArgsConstructor;
import org.springframework.batch.core.job.Job;
import org.springframework.batch.core.job.builder.JobBuilder;
import org.springframework.batch.core.repository.JobRepository;
import org.springframework.batch.core.step.Step;
import org.springframework.batch.core.step.builder.StepBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.PlatformTransactionManager;

@Configuration
@RequiredArgsConstructor
public class CafeJobConfig2 {

    private final JobRepository jobRepository;
    private final PlatformTransactionManager transactionManager;

    @Bean
    public Job cafeJob2() {
        return new JobBuilder("cafeJob2", jobRepository)
                .start(cafeStep2())
                .build();
    }

    @Bean
    public Step cafeStep2() {
        return new StepBuilder("cafeStep2", jobRepository)
                .tasklet(cafeJobTasklet2(), transactionManager)
                .build();
    }

    @Bean
    public CafeJobTasklet cafeJobTasklet2() {
        return new CafeJobTasklet();
    }
}

ch03 에 위에 코드 작성하시고 powerShell(윈도우일 때)

.\gradlew bootRun --args="--spring.batch.job.name=cafeJob2" 

로 실행하시면 됩니다

감사합니다

mysql jenkins spring-boot spring-batch gradle tasklet 단일배치

답변 2

2

JSCODE 시니

쿠카이든님 안녕하세요! JSCODE 시니 입니다~

직접 코드까지 작성해주시고 공유해주시는 열정 너무 멋집니다!! 👍

 

수업에서 다룬 Tasklet의 개념도 잘 이해하고 작성하신 것 같아서 더더욱 좋은 것 같습니다!

다른 수강생 분들께도 큰 도움이 될 것 같아요!

 

다른 수강생 분들도 쿠카이든님의 코드를 참고하셔서 Step => Tasklet으로 이어지는 스프링 배치의 기본 구조를 실습해보시면 공부에 큰 도움이 될 것 같습니다!

 

좋은 자료 공유해주셔서 너무 감사합니다!

공부하시다 궁금한 점 생기시면 언제든 질문 남겨주세요! ㅎㅎ

항상 응원하겠습니다~!!

1

쿠카이든

답변 감사합니다! 좋은 하루되세요!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 쿠카이든님!

지금 작성해주신 코드는 Spring Batch에서 Tasklet을 사용하여 단일 배치 작업을 수행하기 위한 구성 파일입니다. 이 코드를 성공적으로 실행하기 위해 필요한 몇 가지 기본 사항을 간단히 설명드리겠습니다.

코드 설명

  1. Tasklet 방식: CafeJobTasklet 클래스는 실제로 수행될 작업을 정의하며, 이 예제에서는 cafeJobTasklet2()로 빈 선언되어 있습니다.

  2. Job과 Step 구성:

    • cafeJob2() 메서드는 Spring Batch의 Job을 정의하며, 이는 배치 작업의 모음입니다.
    • cafeStep2() 메서드는 Step을 정의합니다. 이 Step은 배치 프로세스의 최소 단위로, 여기에서는 CafeJobTasklet을 사용하여 작업을 수행합니다.
  3. Spring Batch 실행: bootRun 명령을 통해 지정된 Job인 cafeJob2를 실행합니다. 파워쉘에서 다음 명령어를 사용합니다:

   .\gradlew bootRun --args="--spring.batch.job.name=cafeJob2"

이 명령어는 cafeJob2이라는 Job을 실행하는 역할을 하며, Spring Boot 애플리케이션을 시작합니다.

참고 링크

보다 구체적인 실행 방법과 오류 해결에 대한 정보를 보고 싶으시다면, 아래 링크에서 도움이 될 만한 답변을 참고해 보세요:

이 링크에서는 Spring Batch의 개념과 Tasklet 실행에 대해 기존 강의에서 설명한 내용을 확인할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Service Create/Update Record 운용과 Delete Record 미운용의 차이 질문

0

7

1

간단한 오타 제보입니다.

0

3

0

인가 코드 발급(프론트 vs 백)

0

20

2

큰 범위 조회 시 EXPLAIN의 rows 값이 정확하지 않은 이유가 궁금합니다.

0

19

1

인텔리제이 MCP 서버 설정 관련

0

16

1

실제 FK제약조건을 설정하지 않는이유

0

20

1

조회속도 개선에서 더 개선하는 방법이 궁금합니다.

0

21

2

Sequence 관련 질문

1

26

2

Image Only Query

1

24

2

프롬프트, 스킬, sub-agent

0

27

1

라이브 운영중인 환경의 테이블에 인덱스 추가시 고려사항

0

29

2

도메인 모델에서 관계와 규칙을 구분하는 방법

0

36

2

16 강의 메세지 retryCount의 의도

0

22

2

JPA Repository 질문이 있습니다!

1

32

2

페이지네이션 처리를 쿼리에서 하는 방식 질문

1

35

1

DDD 는 마이바티스와 잘 맞지 않는건가요?

0

44

1

스프링부트 버전 문의드립니다.

0

37

1

Json 요청 처리

1

31

2

비동기 스레드풀 분리 이유와 Virtual Thread 전환 시 고려사항

0

33

1

(강의 6분 50초 부분) Workspace 안에 index.html이 비어있음

0

31

2

소스코드 빈파일 문의

0

55

1

jobParameter를 통한 멱등성 질문

1

68

2

bootRun FAILED 에 대한 문의

1

82

2

batch_db 생성 관련 문의 드립니다.

1

105

1