Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

이벤트 재처리 배치잡을 생성한다 #119

Open
jayjaehunchoi opened this issue Nov 20, 2022 · 0 comments
Open

이벤트 재처리 배치잡을 생성한다 #119

jayjaehunchoi opened this issue Nov 20, 2022 · 0 comments
Assignees

Comments

@jayjaehunchoi
Copy link
Collaborator

실행 명령어
java -jar ***.jar date=(오늘 날짜)

  1. 환경 설정

아래와 같이 job을 지정한다. job이 여러개 생길시 외부 환경으로 주입할 수 도 있다.

spring:
  batch:
    job:
      names: reviewFailoverJob
    jdbc:
      initialize-schema: always # 1회 사용 후 never로 변경
  1. 배치
    스프링 배치는 jobRepository(메타데이터 정보), jobLauncher(정보를 읽어와 실행하는 주체), job(작업), step(작업의 단위) {reader, processor, writer} == tasklet 이라고 불리우는 녀석들로 구성되어 있다.

실행하기 전 메타 데이터 정보를 찔러보면서 이미 실행한 job인지 확인한다.
이때 확인 방법은 job instance를 기준으로 확인하는데 job instance의 execution 기록이 성공이면 해당 잡을 재실행할 수 없다(기본 옵션의 경우). job instance가 변경되는 기준은 incremeter? 를 늘리거나, jobParameters의 값을 변경하는 방법이 있다. - 즉 저 둘 중 하나라도 만족하면 해당 job이 실행된다. (아마도 새 인스턴스를 만들면서, 이건 확인해봐야할듯)

chunk는 트랜잭션의 단위이고, page를 통해 10개의 row를 가져왔는데 chunk가 10일 경우 바로 해당 item은 commit된다. 만약 chunk가 더 많을 경우 page가 chunk 개수만큼 돌 때까지 커넥션을 잡고 있는다고 보면 된다. (그래서 chunk size와 page size 맞추기를 권장)

코드를 보면 이해하기 그렇게 어려운 부분이 아니라 한 번 읽어보는 것 추천! 뼈대를 잡았으니 한 번 고칠 부분 있으면 맘껏 고쳐주세요!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant