skillfed

rq-scheduler

Provides job scheduling capabilities to RQ (Redis Queue)

rq-scheduler v0.14.0 678.5K downloads/30d#5,376 on PyPI1,516
Permissive license MIT AGING released

What it is and what it does

RQ Scheduler extends RQ (a Redis-backed job queue) with the ability to schedule jobs for future execution. Instead of enqueueing work immediately, you can specify when a job should run—either at an absolute datetime, after a relative delay, on a repeating interval, or via cron expressions. The package handles two main workflows: you define scheduled jobs using methods like `enqueue_at`, `enqueue_in`, `schedule`, or `cron`, then run a separate scheduler process that polls Redis and moves jobs into the appropriate queue when their time arrives.

The package depends on RQ for the core queue abstraction, crontab for parsing cron expressions, python-dateutil for date handling, and freezegun for testing. It supports Python 3.8 through 3.12 and is classified as Beta. Because scheduling is separate from job execution, you need both a scheduler process and RQ worker processes running to make scheduled jobs actually execute.

Use it for:

  • Schedule a report to generate and email at a specific time each day using a cron expression.
  • Delay a notification or cleanup task to run 10 minutes after a user action, using `enqueue_in`.
  • Retry a failed API call after a fixed interval by scheduling it to run again later.
  • Run a periodic health check or data sync every hour across multiple intervals.
  • Cancel or inspect jobs that have already been scheduled but not yet executed.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Adds job scheduling capabilities to RQ (Redis Queue), allowing you to schedule Python functions to run at specific times, at regular intervals, or on cron schedules.

Yes, if you are already using RQ and need scheduling. The package is stable with no known vulnerabilities and low install friction. The aging maintenance status (654 days since last release) is a minor concern for new projects, but acceptable for established deployments where RQ is already the queue choice. Verify that the cron and scheduling semantics match your use case before committing.

Install

rq-scheduler on PyPI

pip

pip install rq-scheduler

uv

uv add rq-scheduler

poetry

poetry add rq-scheduler

Installing rq-scheduler

Before you install

Low install friction with a pure-Python wheel distribution. Maintenance status is aging—last release was 654 days ago—but the repository remains active and unarchived with 1516 stars, suggesting stable ongoing use despite infrequent updates.

License in practice

MIT license is permissive, allowing commercial and private use with minimal restrictions; you may use this package freely in most contexts.

Quickstart

pip install rq-scheduler

from rq_scheduler import Scheduler
from rq import Queue
from datetime import datetime

scheduler = Scheduler(connection=connection)
scheduler.enqueue_at(datetime(2025, 1, 1), my_function, arg1, kwarg1=value1)

Requires a running Redis server and a separate scheduler process polling Redis to move jobs into queues at their scheduled times.

Verify before relying

  • Whether the 654-day gap since last release indicates sufficient maintenance for production use in your environment.
  • Performance characteristics when scheduling large numbers of jobs or under high concurrency.
  • Whether Redis connectivity and a separate scheduler process are prerequisites for your deployment model.

Package facts

License MIT (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies 4 — crontab, rq, python-dateutil, freezegun
Maintenance aging — 654 days since the last release
Last repo commit
First released
Downloads 678,504/month — #5,376 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: rq_scheduler-0.14.0-py2.py3-none-any.whl

Development Status :: 4 - BetaEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries :: Python Modules

Tags

redis queue job schedulingschedule python functions with rediscron jobs with rqdelayed task executionperiodic job schedulingrq schedulertime-based job queuing
job-schedulingredis-queuecron-jobs

More Python Modules packages