• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

비동기식으로 jobLauncher 실행시키는 것 관련 질문 드립니다.

22.08.09 17:22 작성 조회수 263

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
안녕하세요 비동기로 처리하는 부분을 구현은 하였는데
비동기로 처리시 10번 호출을 하면 각각의 job이 실행되는줄 알았는데 하나의 잡이 끝나고 다음 처리를 하는것으로 보이는데
호출시마다 별도의 잡으로 실행시킬수 있는 방법이 없나요?
아니면 비동기로 실행하면 개별의 job 10개가 실행되는건가요?
 
한 3만건짜리 2건을 실행시켜보면 1건이 read 할때까지 기다리다가 끝나면 다음건이 또 read 하더라라고요 ㅠ.ㅠ
개별로 실행 되면 성능이 많이 향상 될것 같아서 문의 드립니다.
 
 

답변 1

답변을 작성해보세요.

1

네 

그건 비동기 실행으로 이루어진다기보다는 멀티스레드 기반으로 실행이 되어야 합니다.

물론 비동기 실행자체가 응답을 기다리지 않고 계속 다음작업을 진행하지만 비동기 실행을 제어하는 스레드가 한개뿐이면 job을 동시적으로 여러개를 실행하지는 않습니다.

비동기작업 스레드를 여러개 생성하고 실행시키도록 구성한다면 스레드 개수만큼 job 이 실행됩니다.

다만 job 이 빈으로 생성되어 있다면 job은 모든 스레드가 공유하게 되고 내부 처리를 각 스레드별로 진행하게 됩니다.

그렇게 되면 3만건을 동시에 2번 실행하게 됩니다.

본 강의의 멀티스레드 파트를 참고해 주시기 바랍니다.