Skip to content

Conversation

@Dimo-2562
Copy link
Contributor

❤️ 기능 설명

Spring Batch의 AsyncItemProcessorAsyncItemWriter를 도입하여 RSS 크롤링 Job의 요약 추출 및 임베딩 생성 단계를 비동기 처리로 개선했습니다.

주요 변경 사항

1. 비동기 처리 아키텍처 도입

  • Reader: 단일 스레드로 동작하여 데이터 순차 조회 보장
  • Processor: AsyncItemProcessor를 통해 멀티 스레드로 병렬 처리
  • Writer: AsyncItemWriter를 통해 처리 완료된 Future 결과 저장

2. Step 구조 개선

  • extractSummaryStep: Post → Future 처리 구조로 변경
  • embedAndIndexStep: Post → Future 처리 구조로 변경
  • Chunk 처리 시점에 비동기 결과를 기다리고 일괄 저장

3. 의존성 추가

  • spring-batch-integration 추가하여 AsyncItemProcessor/Writer 사용

개선 효과

  • Reader의 단일 스레드 특성 유지로 데이터 순차 조회 보장
  • Processor에서 외부 API 호출(GPT, OpenAI Embedding) 병렬 처리
  • Writer는 처리 완료된 결과만 받아 안전하게 저장
  • 기존 taskExecutor 방식보다 명확한 비동기 처리 구조

연결된 issue

close #143



✅ 체크리스트

  • PR 제목 규칙 잘 지켰는가?
  • 추가/수정사항을 설명하였는가?
  • 테스트 결과 사진을 넣었는가?
  • 이슈넘버를 적었는가?

참고 사이트

https://docs.spring.io/spring-batch/reference/5.2/spring-batch-integration/sub-elements.html

@Dimo-2562 Dimo-2562 changed the title improve: AsyncItemProcessor와 AsyncItemWriter를 통해 Reader는 단일 스레드이지만 병렬… [improve/#143] 크롤링 파이프라인 중 LLM 요약 단계와 임베딩 단계에서 중복 처리되는 문제 해결 Jan 6, 2026
@Dimo-2562 Dimo-2562 self-assigned this Jan 6, 2026
@Dimo-2562 Dimo-2562 added ✨ IMPROVE 기존 기능 변경 🏢 domain:source 테크블로그 출처 labels Jan 6, 2026
@Dimo-2562 Dimo-2562 merged commit a747ba8 into develop Jan 6, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🏢 domain:source 테크블로그 출처 ✨ IMPROVE 기존 기능 변경

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[IMPROVE] 크롤링 파이프라인 중 LLM 요약 단계와 임베딩 단계에서 중복 처리되는 문제 해결

2 participants