본문 바로가기

프로그래밍/SpringBatch3

[Spring Batch] jobExecution 안에 있는 ExecutionContext안에 데이터 저장하기. (jobExecution에 데이터 저장 해서 사용하기) 1. Listener 클래스를 하나 선언한 후 public class 클래스명 implements JobExecutionListener{ } 해준다. 2. 클래스 내부에 beforeJob을 오버라이드 해준다. @Override public void beforeJob(JobExecution jobExecution) { ExecutionContext executionContext = jobExecution.getExecutionContext(); executionContext.put("키", 데이터가 선언된 변수); } 3. 이렇게 넣어주면 된다. 4. 사용할 때에는 아래와 같이 @Value와 jobExecutionContext에서 키값을 이용해 데이터를 꺼내와 미리 저장해둔 데이터 자료구조에 맞는 타입과 .. 2022. 9. 27.
[Spring Batch] Duplicate entry '0' for key 'PRIMARY' 오류 h2 db에서 테스트할 때는 잘만 실행되던 배치잡이 mysql로 db를 변경하여 실행 했더니 처음에만 정상적으로 실행이 되고, 2번째 배치잡 작업부터는 제목과 같은 오류가 발생했다. 알고보니 배치잡 테이블을 생성할때 create문을 통해 메타 테이블만 만들어지고 아래와 같은 기본적으로 들어가야 하는 데이터들 즉 seq값이 입력이 안되었던 것이다. INSERT INTO BATCH_STEP_EXECUTION_SEQ values(0, '0'); INSERT INTO BATCH_JOB_EXECUTION_SEQ values(0, '0'); INSERT INTO BATCH_JOB_SEQ values(0, '0'); 이렇게 insert 문을 수동으로 실행해주니 그 이후로 부터는 batchjob이 아무런 이상 없이 정.. 2022. 7. 22.
[SpringBatch] 스프링 배치 도메인 간단 정리 Job 스프링 배치에서 실행되는 작업. / 하나의 배치 작업 그 자체를 의미한다. job과 jobInstance는 1:N 관계 JobInstance job은 실행 될때 마다 하나의 잡 인스턴스를 생성함. 인스턴스는 job(jobname)과 jobkey (jobparameter의 해시값)를 통해 식별됨. jobInstance와 jobExecution과의 관계는 1:N이다. Jobparameter 잡 인스턴스를 식별하기 위해 사용. jobLauncher가 job을 실행할때 job과 jobparameter를 보내주게됨. 이때 보내진 jobparameter는 Map형식으로 이 jobparameter를 활용하여 jobInstance를 식별하게 됨. jobparameter의 타입 종류는 4가지 : String, D.. 2022. 6. 26.