overview
RQ (Redis Queue) とは?
RQ (Redis Queue) は、RQ Project Contributorsによって開発されたバックグラウンドジョブ処理ライブラリであり、開発者、Webアプリケーション開発者、およびシステムアーキテクトがジョブをキューに入れ、ワーカーを使用してバックグラウンドで処理することを可能にします。ジョブの保存とキューの管理のためにバックエンドとしてRedisまたはValkeyを利用し、参入障壁が低く、スケーラビリティを考慮して設計されています。RQを使用すると、Pythonアプリケーションは時間のかかるタスクやブロッキングタスクをバックグラウンドプロセスにオフロードでき、メインアプリケーションの応答性を維持します。ジョブ処理はFirst-In, First-Out (FIFO) の原則に基づいて動作します。
RQ (Redis Queue) の主なユースケースには、メインのWebアプリケーションをブロックすることなく、メール送信、レポート生成、画像処理、ファイルアップロードなどの時間のかかる操作に対する非同期ジョブ処理が含まれます。また、分散システムにおいて、複数のワーカーが様々なノードで処理するタスクを管理するためにも採用されています。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が必要となります。