overview
RQ (Redis Queue)란 무엇인가요?
RQ (Redis Queue)는 RQ Project Contributors가 개발한 백그라운드 작업 처리 라이브러리로, 개발자, 웹 애플리케이션 개발자 및 시스템 설계자가 작업을 대기열에 추가하고 워커로 백그라운드에서 처리할 수 있도록 합니다. Redis 또는 Valkey를 백엔드로 활용하여 작업을 저장하고 대기열을 관리하며, 진입 장벽이 낮고 확장성을 고려하여 설계되었습니다. RQ는 Python 애플리케이션이 시간이 많이 걸리거나 차단되는 작업을 백그라운드 프로세스로 오프로드하여, 메인 애플리케이션이 계속 응답하도록 보장합니다. 작업 처리에는 선입선출(FIFO) 원칙에 따라 작동합니다.
RQ (Redis Queue)의 주요 사용 사례에는 메인 웹 애플리케이션을 차단하지 않고 이메일 전송, 보고서 생성, 이미지 처리 또는 파일 업로드와 같은 장시간 작업에 대한 비동기 작업 처리가 포함됩니다. 또한 분산 시스템에서 여러 노드의 다중 워커가 처리하는 작업을 관리하는 데 사용됩니다. RQ는 Flask, Django 및 FastAPI와 같은 프레임워크의 API 응답성을 향상시키기 위해 장시간 실행되는 작업을 백그라운드 대기열로 이동시킵니다. rq-scheduler 확장 기능을 사용하면 특정 시간 또는 지연 후에 작업을 실행하도록 예약할 수 있어 애플리케이션 자동화 기능을 향상시킵니다. 최근 개발 사항으로는 CREATED 작업 상태를 도입한 RQ 2.4.1 (2025년 7월 20일)과 여러 작업 실행 및 AWS Elasticache Serverless Redis 호환성을 추가한 RQ 2.0 (2024년 10월 28일)이 있습니다. RQ 1.12.0 (2023년 1월 15일)부터는 여러 작업 실행 결과를 저장하기 시작했으며, 이를 위해서는 Redis >= 5.0 Redis Streams가 필요합니다.