inflearn logo
강의

Khóa học

Chia sẻ kiến thức

[Giới thiệu về Spring Batch] Những kiến ​​thức cốt lõi của Spring Batch thông qua các ví dụ

Chạy một công việc hàng loạt (Lập lịch mùa xuân)

Spring Batch 테이블이 생성되질 않습니다!!!!!

Đã giải quyết

1708

PrivilegeEscalate

27 câu hỏi đã được viết

0

안녕하세요 강사님. 우선 강의 잘 들었다고 말씀드리고싶습니다.

다름이 아니라, 프로젝트에 스프링 배치를 적용시켜보려합니다.

아.. 근데 애플리케이션을 실행하면 기본으로 생성되는 배치 테이블이 생성되질 않습니다. (로컬에서는 h2 사용중입니다.)

 

현재로서는 임시방편으로 BatchProperties 에 나와있는대로 schema-h2.sql 내용을 복사해서 애플리케이션 구동 후, sql console 에 붙여넣기하여 배치 테이블을 직접 만들어주고있습니다. (이렇게 하면 배치랑 스케줄링이 정상적으로 잘 동작합니다.)

현재 yml 은 아래와 같습니다. profile 에 따라 yml 을 분리시켜주었긴 했는데, 포맷은 똑같습니다!

(defer-datasource-initialization 와 sql-init-mode 과 관련있나해서 이것도 바꿔보았는데.. 되질 않습니다ㅠㅠ)

spring:
  profiles:
    active: local

  jpa:
    open-in-view: false
    hibernate:
      ddl-auto: create
    defer-datasource-initialization: true
    properties:
      hibernate:
        format_sql: true
        default_batch_fetch_size: 100

  data:
    web:
      pageable:
        one-indexed-parameters: true

  datasource:
    url: jdbc:h2:tcp://localhost/~/apartribe;MODE=MySQL
    username: sa
    password:
    driver-class-name: org.h2.Driver

  sql:
    init:
      mode: always

  mail:
    host: smtp.gmail.com
    port: 587
    username: EMAIL
    password: PASSWORD
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true
          ssl:
            trust: "*"

  security:
    oauth2:
      client:
        registration:
          kakao:
            client-name: KOAuth2LoginDemo
            client-id: KAKAO_CLINET_ID
            client-secret: KAKAO_CLINET_SECRET
            client-authentication-method: client_secret_post
            redirect-uri: http://localhost:8080/login/oauth2/code/kakao
            authorization-grant-type: authorization_code
            scope: profile_nickname, profile_image, account_email, age_range, birthyear

        provider:
          kakao:
            authorization-uri: https://kauth.kakao.com/oauth/authorize
            token-uri: https://kauth.kakao.com/oauth/token
            user-info-uri: https://kapi.kakao.com/v1/oidc/userinfo
            user-name-attribute: sub

  batch:
    jdbc:
      initialize-schema: always
    job:
      enabled: false

application:
  security:
    jwt:
      secret-key: ACCESS_TOKEN_SECRET_KEY
      expiration: ACCESS_TOKEN_EXPIRATION
      refresh-token:
        secret-key: REFRESH_TOKEN_SECRET_KEY
        expiration: REFRESH_TOKEN_EXPIRATION
  mail:
    subject: MAIL_SUBJECT

logging:
  level:
    sql: debug

cloud:
  aws:
    s3:
      bucket: AWS_BUCKET_NAME
    credentials:
      access-key: AWS_ACCESS_KEY
      secret-key: AWS_SECRET_KEY
    region:
      static: ap-northeast-2
      auto: false
    stack:
      auto: false

server:
  error:
    whitelabel:
      enabled: false
    include-exception: false
    include-message: never
    include-stacktrace: never
    include-binding-errors: never

 

프로젝트 주소는 아래와 같습니다.

https://github.com/Revi1337/apartribe-backend

 

Batch 와 Scheduling 설정의 위치는 아래와 같습니다

src/main/java/kr/apartribebackend/global/config/BatchConfig.java

src/main/java/kr/apartribebackend/global/config/SchedulingConfig.java

 

조언좀 부탁드리겠습니다 선생님..ㅠㅠ

 

spring-batch

Câu trả lời 2

1

mjcoding

안녕하세요. PrivilegeEscalate님 안녕하세요 :)
답변이 늦어져서 죄송합니다 😢
@EnableBatchProcessing 어노테이션 추가를 부탁드려보겠습니다😀
예시는 아래 URL 코드를 확인해주세요!
감사합니다.

[0]
https://github.com/junngo/spring-batch-tutorial/blob/3a4a1e85ad17e87acb56e5037bf1cdfe31920987/src/main/java/com/example/SpringBatchTutorial/SpringBatchTutorialApplication.java#L7

1

PrivilegeEscalate

저도 답변이 늦었습니다 죄송합니다.

우선 @EnableBatchProcessing 과 @Job, @Step 설정을 분리하였더니 정상적으로 잘 동작합니다. @EnableBatchProcessing 와 @Job, @Step 를 하나의 파일에 작성했던것이 문제였나봅니다. 감사합니다 강사님!

0

communityai8509

안녕하세요 PrivilegeEscalate 님, 인프런 AI 인턴이에요.

스프링 배치 테이블이 생성되지 않는 문제에 대해 문의하셨네요. 해당 문제에 대해 몇 가지 확인해야 할 사항이 있습니다.

  1. schema-h2.sql 파일 위치 확인: BatchProperties에서 명시한 파일 경로가 정확한지 확인해주세요. 파일이 위치한 경로나 파일명에 오타가 없는지 다시 확인해보시기 바랍니다.

  2. 스프링 재시작 확인: 배치 테이블은 애플리케이션이 실행될 때 자동으로 생성됩니다. 스프링 애플리케이션을 재시작하시면서 배치 테이블의 생성 여부를 확인해주세요.

  3. 로그 확인: 애플리케이션의 로그를 확인하여 배치 관련 에러 또는 경고 메시지가 있는지 찾아보세요. 에러 또는 경고 메시지에 따라 문제의 원인을 파악할 수 있을 것입니다.

  4. H2 데이터베이스 접속 확인: H2 데이터베이스에 정상적으로 접속되는지 확인해주세요. 접속이 제대로 되지 않으면 배치 테이블이 생성되지 않을 수 있습니다. H2 데이터베이스의 URL, 사용자 이름, 비밀번호 등을 다시 한번 확인해보세요.

위의 사항을 확인하신 후에도 문제가 해결되지 않는다면, 배치 관련 설정 파일인 BatchConfig.javaSchedulingConfig.java의 내용을 확인해보시는 것도 도움이 될 수 있습니다. 불편을 드려 죄송하며, 언제든지 도움이 필요하시면 다시 문의해주세요. 감사합니다!

배치 실행시 파라미터 (파일 이름)받기 및 (csv) 검증 5.0버전 공유

1

51

1

질문x 1강 일단 실행 코드부분 5.0에 맞춰 수정

1

38

1

spring batch 5.x 버전 설정

1

141

2

Spring Batch 5버전의 경우 실행법 공유

0

166

1

질문입니다.

0

108

1

소스 다운 받을 수 없는건가요?

0

120

1

학습에 사용하는 문서 자료 같은 건 없나요?

0

123

1

spring batch 5버전 소스는 없나요

0

439

1

질문드립니다.

0

340

1

@Configuration 어노테이션 관련 질문있습니다.

0

277

1

다중 Job 구동시 질문 있습니다!!

0

318

1

설정 관련 문의

1

303

1

다중DB 접속 설정 에러

0

960

1

조건별 분기 처리시 질문있습니다

0

353

1

db이관시 sql 스크립트 데이터 복붙하라고 하시는데 파일은 어디에 있나요 ?

0

493

1

Spring Batch5로 강의내용 최신화 업데이트될 가능성이 있을까요?

0

873

1

reader, writer, processor에서 적용

0

492

1

똑같이 실행하는데 출력이 안돼요

0

1023

2

스케줄러에서 Job을 구분하지 못합니다.

0

610

1

빌드가 실패해요 ㅠㅠ

1

3209

1

Chunk size에 대해

0

3179

1

Run / Debug 관련 질문드립니다..!

1

916

2

완강했습니다! 마지막 질문 드리고 싶습니다.

0

424

1

여러개의 step 구동 질문

0

398

1