--- id: rq-scheduler version: "0.14.0" license: MIT license_treatment: permissive maintenance: aging --- # rq-scheduler — Provides job scheduling capabilities to RQ (Redis Queue) License: permissive · Maintenance: aging · Downloads: 678.5K/mo ## 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 above — 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 pip install rq-scheduler uv add rq-scheduler 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: unspecified - Install friction: low - Maintenance: aging - Downloads: 678.5K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags redis queue job scheduling, schedule python functions with redis, cron jobs with rq, delayed task execution, periodic job scheduling, rq scheduler, time-based job queuing, job-scheduling, redis-queue, cron-jobs [View on SkillFed](https://skillfed.io/packages/rq-scheduler) · [View on PyPI](https://pypi.org/project/rq-scheduler/)