월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 배치
하나의 Job이 돌고 있을때 다른 Job이 돌 수 있나요?
안녕하세요. 스프링 배치 관련해서 실무 적용해보려고 합니다.저희 사내 시스템에서 특정 A Job이 돌고 있는 시기에 B Job이 돌아야 하는 경우가 있습니다.[스케줄러의 시간이 겹침]이 경우에 스프링 배치에서 지원하는 기능이 있을까요?또한 만약 가능하다면 A Job과 B Job이 동일한 배치 인스 턴스를 참조하는지도 궁금합니다
- 미해결스프링 배치
커서 기반 질문입니다.
이전에 커서 기반 설명하실 때 읽어 오는 모든 데이터를 메모리에 할당 한다고 했습니다. 이번 jpa 커서 기반은 open시 다 가져오므로 모든 데이터가 메모리에 할당되는 것이 이해됩니다.반면 Jdbc 커서 기반에선 설정한 청크 단위로 read, write 수행하는 걸로 아는데, 모든 데이터가 메모리에 할당되는 것이 맞나요?? (맞다면 비효율적인 설계같습니다)
- 미해결스프링 배치
청크 기반 스텝, 서버 재기동
안녕하세요,처리해야할 데이터가 총 10000개인데청크 사이즈를 1000개로 하여 수행하던중(4000번째 데이터까지 처리되어 커밋되었습니다)4500번째 데이터를 처리하다가 서버가 재기동하였습니다.해당 스텝은 완료되지 않았기 때문에해당 스텝을 재시작할 수 있을텐데요이때 4001번째 데이터부터 (청크단위로 커밋되지 않은 데이터부터) 재시작할 수 있는 방법이 있을까요?
- 미해결스프링 배치
application.yaml 물어봅니다.
yaml 설정파일에서 계속 에러가 나서설정할 username, password,database정보가 틀렸는 검사해봤습니다.아래와 같이 아무런 문제 없었습니다.아래화면처럼 설정을 했습니다.애플리케이션을 구동했을 때 화면입니다.자꾸 url 쪽에서 에러가 난다고 나옵니다.화면 보면서 따라가는중인데 왜 에러가 자꾸 날까요? application.yaml spring: datasource: hikari: jdbc-url: jdbc:mysql://localhost:3306/insoodb?useUnicode=true&characterEncoding=utf8&useSSL=false username: insoo password: insoo driver-class-name: com.mysql.jdbc.Driver batch: jdbc: initialize-schema: always
- 미해결스프링 배치
강의자료 문의드립니다.
안녕하세요. 제가 MAC을 사용해서요.강의자료 PDF로도 혹시 제공 가능한가요. ㅠㅠ 감사합니다.
- 미해결스프링 배치
테이블 명세에 대해 의문사항이 있습니다.
안녕하세요 강사님좋은 강의에 먼저 감사의 말씀 드립니다.https://github.com/spring-projects/spring-batch/blob/main/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-mysql.sql테이블을 생성하는 구문은 위 링크와 같은데,BATCH_JOB_INSTANCE와 BATCH_JOB_EXECUTION의 경우 일대다 비식별 관계인 것이 이해가 갑니다.하지만 BATCH_JOB_EXECUTION와 BATCH_JOB_EXECUTION_CONTEXT는식별관계임에도 불구하고 일대다로 구성되어 있네요.. (복합키도 아님)여기서 질문 있습니다.이렇게 테이블을 구성하면 실제로 BATCH_JOB_EXECUTION_CONTEXT에는 중복된 값이 들어갈 수 없어 일대다 관계가 성립하지 않는 것 아닌가요?BATCH_JOB_EXECUTION_PARAMS의 경우 기본키가 없는데 혹시 알려주실 수 있으실까요?
- 미해결스프링 배치
batch 관련 빈들을 proxy 객체로 생성하는 이유가 뭘까요?
안녕하세요batch 관련 빈들을 proxy 객체로 생성하는 이유가 뭘까요?@EnableBatchProcessing 어노테이션에 의해 SimpleBatchConfiguration.java 설정이 적용되는데요!이 설정에서 배치와 관련한 중요 빈들을 생성하는것을 볼 수 있는데* jobRepository* jobLauncher* jobBuilderFactory* stepBuilderFactory궁금한점은 이 빈들에 대해 왜 프록시로(createLazyProxy()) 생성하는걸까요?보통 프록시로 생성되어야 하는 빈들은 빈후처리기에 의해서 필요에 따라 선택되는걸로 알고있거든요아마도, 빈초기화 시점에 BatchConfigurer.class와 과련이 있어 보이는데, 정확히 알지 못하겠습니다.
- 미해결스프링 배치
블로그 정리
안녕하세요. 강사님 좋은 강의 감사합니다.다름이 아니라, 강의 보면서 블로그에 정리하려고 하는데 혹시 강의 기반으로 내용 정리해도 괜찮을까요?
- 미해결스프링 배치
Job 실행지연 시 같은 Job실행 방지
(현재 환경은 job 스케줄링을 jenkinse로 하고 있고, 서버를 1개만 사용할 계획입니다.)스케줄링대로 5분 간격으로 여러 Job을 실행시키는 경우 1번 Job이 실행이 지연으로1번 Job 이 배치를 돌고 있는 중에 다시 1번 Job실행 순서가 오는 경우,즉, 같은 Job이 실행 중인 경우에는 같은 Job실행을 방지하고 싶은데Listener를 이용하는 방법 말고 혹시 다른 방법으로 이를 구현할 수 있는 방법은 없을까요??JobOperator.stop으로 막아야 할 거 같은데 어떤 구현객체, interface를 활용해야 할지 모르겠습니다.
- 미해결스프링 배치
Xstream 관련 ForbiddenClassException 또는 CannotResolveClassException 해결방법
XStream 버전이 올라가면서 보안 관련 문제로 실습이 제대로 안되는 문제가 있었습니다.간단하게 실습 자체만 하고 싶으신 분들은 XStream 모듈 버전을 낮추시면 됩니다.implementation 'com.thoughtworks.xstream:xstream:1.4.16' 저의 경우 그렇게 하기는 싫어서 다른 방식으로 문제를 해결했습니다. public Unmarshaller itemUnmarshaller() { final Map<String, Class<?>> aliases = new HashMap<>(); aliases.put("customer", Customer.class); aliases.put("id", Long.class); aliases.put("name", String.class); aliases.put("age", Integer.class); final XStreamMarshaller xStreamMarshaller = new XStreamMarshaller(); final XStream stream = xStreamMarshaller.getXStream(); stream.alias("customer", Customer.class); // CannotResolveClassException 해결방안 stream.addPermission(AnyTypePermission.ANY); // ForbiddenClassException 해결방안 xStreamMarshaller.setAliases(aliases); return xStreamMarshaller; }와 같이 진행했을 때 저의 경우 문제 없이 작동했습니다.
- 미해결스프링 배치
안녕하세요
안녕하세요job parameter로 seq(long) 타입을 인식을 못해서 Null Pointer exception이 나고 있네요 Mac에서 zsh 쓰고있는데 혹시 저같은 분 계실까요?
- 미해결스프링 배치
DB 에 데이터가 안들어옵니다..
강의 그대로 따라가는데 테이블에 데이터가 안들어옵니다..
- 미해결스프링 배치
SpringBatch 시작 시 cpu 사용률 증가
강사님 안녕하세요. 강의 잘 보았습니다.실제 SpringBatch를 업무에 사용 중인데 서버에서 배치job(jar) 실행 시(SpringBatch 기동 시)cpu 사용률이 급격하게 많이 올라가는(80%정도)걸 확인하였습니다각 상황에 따라 다르겠지만 SpringBatch에서 설정이나 불필요한 모듈 제외하는 등으로시작 시 cpu 사용량을 좀 줄일 수 있는 방법이 있는지 궁금합니다.
- 미해결스프링 배치
Flow 구성하는 방법
10:03에서 SimpleFlow 객체를 생성할 떄는 .end()를 사용하는데 13:54 실습부분에서는 SimpleFlow를 생성할때 builder.build() api를 사용합니다. 둘 중 어떤 것을 통해 SimpleFlow를 생성하는 것이 옳나요?
- 미해결스프링 배치
28:08에서 batch_step_execution에 대해 궁금한점이 있습니다.
step1의 batchstatus가 왜 complete가 아닌 abandoned인지 잘 모르겠습니다.
- 미해결스프링 배치
파티셔닝의 사용 케이스가 어떻게 될까요?
안녕하세요 강사님! 강의 잘보고 있습니다! 파티셔닝에 대해 학습하게 되었고 장점도 잘 알겠는데 보통 실무에서 몇만건 정도 처리를 할때 파티셔닝을 적용해도 되겠다싶을까요? 상황마다 다르겠지만 대략적으로 궁금합니다
- 미해결스프링 배치
Step에 @JobScope 걸어두면 stop할때 No context holder available for job scope 에러가 발생합니다.
Step에 @JobScope 걸어두면 stop할때 No context holder available for job scope 에러가 발생합니다. 원래 그런건가요? 아니면 제가 코드를 잘못짠건가요?
- 미해결스프링 배치
Job을 여러번 실행할 때
해당 강의에서 같은 파라미터로 job을 여러번 실행하기 위해 incrementer() API를 알려주셨는데요. 의문이 있습니다. 실제 업무 환경에서는 똑같은 파라미터로 계속해서 실행할 경우가 있습니다. 예를 들어 하루에 1시간 단위로 실행되어야 하는 job은 파라미터로 2022-01-01 과 같이 날짜 파라미터를 받아 실행하는 경우가 있는데요. 이때 같은 파라미터로 똑같은 job을 실행할 수 없으니 incrementer() 를 사용하면 해결될 것 같긴 한데, 만약 스프링 배치 어플리케이션이 재기동이 될 경우 id 값이 0으로 초기화 되는 문제가 발생합니다. 즉, 날짜 파라미터는 2022-01-01로 동일한데, incrementer()를 통해 1~10까지 수행했다가, 어플리케이션이 재시작되게 되면 incrementer()를 통해 다시 1부터 수행하기 때문에 같은 job을 실행할 수 없는 상황이 올 것 같습니다. 이런 문제는 어떻게 해결하나요..? incrementer()가 순차적으로 증가하는 값이 아니라 랜덤 값 같은 걸 반환하도록 해야할까요? 근데 이러한 방식도 중복을 100% 방지할 수는 없다고 생각합니다. 스프링 배치에서 지원하는 API가 따로 있나요? 강의 뒷 부분에 나오는지 궁금하네요.
- 미해결스프링 배치
firstPageSql, NamedParameterJdbcTemplate null 로 들어가는데 왜그럴까요..
(사진)
- 미해결스프링 배치
동일한 JobInstance에 대해서는 JobExecution이 복사가 되나요?
안녕하세요? 공유자님의 강의 잘 보고 있습니다 스프링 배치 도메인 이해 - ExecutionContext 영상의 41:46부분을 보면 jobInstance는 하나이지만 JobExecution은 똑같은 데이터로 로우가 하나 더 생겼습니다.이같은 경우는 jobExecution2가 jobExecution1의 데이터를 기반으로 실행되고 DB에 복제되어 저장되었다고 보는게 맞을까요?