OSS TanbouSign in with GitHub

run Python background jobs through lightweight Redis or Valkey queues and workers

OSS scale score 284.3OSS health 100
About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
10,693
Primary language
Python
License
BSD-2-Clause
Repository last updated
Oct 3, 2026
On this page

Overview

RQ (Redis Queue) turns Python function calls into background jobs stored in Redis or Valkey and processed by independent workers. It provides priority queues, retries, scheduling, repeating jobs, uniqueness, and webhooks through a relatively small API.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Enqueue Python functions and process them in independent workers

Queue.enqueue() stores a Python function call and arguments as a job in Redis or Valkey, while rq worker processes jobs in a separate worker process. Multiple queues such as high and low can be ordered for priority handling.

Sources: [2]

Add retries, scheduling, repetition, unique jobs, and webhooks

RQ includes Retry, delayed and scheduled execution, repeating jobs, duplicate prevention through unique jobs, and completion or failure webhooks. Version 2.12 also adds CronJobRegistry for tracking cron job history.

Sources: [2][4]

Best fit

Fits Python backends that want background work with an existing Redis deployment

It works well for email delivery, report generation, image processing, and similar work that should leave the request path without introducing a larger broker stack, especially when Redis or Valkey already exists in the service.

Sources: [2]

Before adoption

RQ 2.12 requires Python 3.10+ and Redis 5+ or Valkey 7.2+; review pickle and worker choices

RQ 2.12 requires Python 3.10 or newer and Redis 5+ or Valkey 7.2+. The default serializer uses pickle and is unsafe with untrusted Redis data, so use only trusted instances or a safer serializer. Production guidance favors Worker or SpawnWorker for isolation and hard timeouts, with SimpleWorker reserved for measured short-job bottlenecks.

Sources: [2][3]

Official sources

  1. [1]rq/rq — GitHub repository(2026-10-06)
  2. [2]RQ 2.12 — README(2026-10-06)
  3. [3]RQ 2.12 — pyproject.toml(2026-10-06)
  4. [4]RQ 2.12 release(2026-10-06)
  5. [5]RQ BSD-2-Clause license(2026-10-06)
Supplemental curator note

RQ is a strong fit when an existing Redis deployment can support a small background-job stack. The default pickle serializer and worker isolation model directly affect the trust boundary, so decide those choices before production rollout.

Try it in 3 steps

  1. 1

    Install RQ 2.12

    Pin the reviewed stable release. Python 3.10 or newer and a trusted Redis 5+ or Valkey 7.2+ instance are required.

    python -m pip install "rq==2.12"
  2. 2

    Create a job to enqueue

    Create a minimal function and enqueue script without external HTTP access. Redis or Valkey is expected to be running on localhost.

    cat > tasks.py <<'PY' def add(x, y): return x + y PY cat > enqueue.py <<'PY' from redis import Redis from rq import Queue from tasks import add q = Queue(connection=Redis()) job = q.enqueue(add, 2, 3) print(job.id) PY
  3. 3

    Start a worker and enqueue the job

    Start the worker, enqueue the job from another terminal, and confirm successful execution in the worker log. The default serializer uses pickle, so only use trusted Redis data.

    rq worker # In another terminal: python enqueue.py
Check the official README

Growth

Growth trends · Last 30 days

10,693 Stars

Trend data is still being collected.

Built with

Categories and tags

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • async
  • background-jobs
  • delayed-jobs
  • delayed-tasks
  • job-queue
  • python
  • redis
  • rq
  • task
  • task-queue
  • workers
Stars
10,693
Forks
1,503
Watchers
194
Open issues
261
Contributors
316
Owner type
Organization
Primary language
Python
Repository last updated
Oct 3, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?