Redis Streams 기반 외부 워커로 파일 처리, 스키마 추출 등 무거운 작업을 분산 처리
지식기반에 대용량 파일을 업로드하면 텍스트 추출, 청킹, 임베딩 생성, 벡터 DB 저장까지 상당한 시간이 걸립니다. 이 작업이 메인 서버에서 실행되면 다른 사용자의 채팅 응답도 느려질 수 있습니다.외부 워커는 이런 무거운 백그라운드 작업을 별도 프로세스로 분리합니다. Redis Streams를 통해 작업 큐를 관리하며, 워커가 없으면 메인 서버가 기존처럼 직접 처리합니다.
사용자가 파일 업로드 ↓메인 서버: Redis Streams에 작업 등록 ↓외부 워커: 큐에서 작업 수신 ↓워커: 텍스트 추출 → 청킹 → 임베딩 → 벡터 DB 저장 ↓워커: 메인 서버에 콜백 (처리 완료/실패 알림) ↓메인 서버: 파일 상태 업데이트 → 사용자에게 알림
워커가 연결되지 않거나 Redis가 비활성화된 경우, 메인 서버가 자동으로 **폴백(fallback)**하여 직접 처리합니다. 워커 장애가 서비스 중단으로 이어지지 않습니다.