You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
아래와 같이 job을 지정한다. job이 여러개 생길시 외부 환경으로 주입할 수 도 있다.
spring:
batch:
job:
names: reviewFailoverJobjdbc:
initialize-schema: always # 1회 사용 후 never로 변경
배치
스프링 배치는 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 맞추기를 권장)
코드를 보면 이해하기 그렇게 어려운 부분이 아니라 한 번 읽어보는 것 추천! 뼈대를 잡았으니 한 번 고칠 부분 있으면 맘껏 고쳐주세요!
The text was updated successfully, but these errors were encountered:
실행 명령어
java -jar ***.jar date=(오늘 날짜)
아래와 같이 job을 지정한다. job이 여러개 생길시 외부 환경으로 주입할 수 도 있다.
스프링 배치는 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 맞추기를 권장)
코드를 보면 이해하기 그렇게 어려운 부분이 아니라 한 번 읽어보는 것 추천! 뼈대를 잡았으니 한 번 고칠 부분 있으면 맘껏 고쳐주세요!
The text was updated successfully, but these errors were encountered: