피드로 돌아가기
Laravel Horizon in Production: Configuring AI Queue Workloads That Actually Hold
Dev.toDev.to
Backend

Timeout 300s 설정 및 Time-based Scaling을 통한 AI 추론 큐 안정화

Laravel Horizon in Production: Configuring AI Queue Workloads That Actually Hold

Dewald Hugo2026년 5월 15일14intermediate

Context

표준 Queue Worker의 짧은 Timeout과 즉각적인 Retry 설정으로 인해 LLM 추론 작업의 Silent Timeout 및 Rate Limit 소진 발생. 고부하 AI 작업 특성상 수 초 내 완료되는 일반 작업과 달리 수 분의 처리 시간이 요구되는 아키텍처적 괴리 존재.

Technical Solution

  • AI 전용 Supervisor Pool 분리를 통한 일반 작업과의 리소스 격리 및 개별 설정 최적화
  • autoScalingStrategy를 'time'으로 설정하여 큐 크기가 아닌 대기 시간 기반의 Worker 확장 구조 설계
  • Timeout을 300s로 확장하여 대규모 Context 및 Streaming Completion 과정의 SIGKILL 방지
  • balanceCooldown을 5s로 상향 조정하여 추론 요청 변동성에 따른 Worker 수 변동의 Thrashing 억제
  • Supervisord의 stopwaitsecs를 Timeout + 60s로 설정하여 배포 시 실행 중인 Job의 강제 종료 방지
  • Rate Limiting 시 Backoff Array 적용을 통해 429 응답 발생 시 즉각적인 Retry로 인한 쿼터 낭비 차단

- AI 전용 큐 생성 및 Horizon 전용 Supervisor Pool 설정 여부 확인 - autoScalingStrategy가 'time'으로 설정되어 대기 시간 기반 확장 가능 여부 검토 - Supervisord의 stopwaitsecs 설정값이 Horizon Timeout보다 큰지 확인 - LLM API 호출 Job 클래스에 적절한 Backoff 전략 및 Retry 횟수 정의 여부 점검

원문 읽기