Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Ruby
  3. resque-scheduler

resque-scheduler

MITRubyv5.0.0

A lightweight job scheduling extension for Resque that supports delayed and recurring jobs.

GitHubGitHub
1.7k stars476 forks0 contributors

What is resque-scheduler?

Resque-scheduler is a lightweight job scheduling extension for Resque that allows developers to queue jobs to run at specific times in the future or on a recurring schedule. It solves the problem of handling time-based tasks like sending delayed emails or running periodic maintenance jobs within the Resque ecosystem, eliminating the need for external cron systems.

Target Audience

Ruby developers using Resque for background job processing who need to schedule delayed or recurring tasks, such as sending follow-up emails, generating periodic reports, or performing batch operations at specific times.

Value Proposition

Developers choose Resque-scheduler because it integrates seamlessly with Resque, providing a familiar API and infrastructure for scheduling without introducing new dependencies. Its support for both delayed and recurring jobs, along with features like dynamic scheduling and failover, makes it a robust and flexible solution for time-based job management.

Overview

A light-weight job scheduling system built on top of Resque

Use Cases

Best For

  • Scheduling one-off delayed jobs like sending follow-up emails after a few days
  • Setting up recurring cron-like jobs for periodic tasks such as data cleanup or report generation
  • Building applications that require dynamic job scheduling without restarting the scheduler process
  • Ensuring high availability for scheduled jobs with redundant scheduler instances and failover
  • Managing time-based tasks within an existing Resque-based background job infrastructure
  • Replacing external cron systems with an integrated Ruby-based scheduling solution

Not Ideal For

  • Teams using alternative background job systems like Sidekiq or Active Job without Resque
  • Applications requiring millisecond-accurate job timing, as resque-scheduler polls at intervals (default 5 seconds)
  • Projects that need scheduling across polyglot microservices, since it's tightly coupled with Ruby and Resque
  • Environments where external cron systems are preferred for their simplicity and universal availability

Pros & Cons

Pros

Seamless Resque Integration

Integrates directly with Resque's Redis configuration and API, allowing delayed jobs to be enqueued using familiar methods like `Resque.enqueue_in`, as shown in the basic usage examples.

Flexible Scheduling Modes

Supports both one-off delayed jobs and cron-like recurring jobs via YAML configuration, providing versatility for time-based tasks such as sending emails or running maintenance.

Dynamic Schedule Management

When enabled with `Resque::Scheduler.dynamic = true`, schedules can be added, updated, or removed at runtime without restarting the scheduler process, offering flexibility for changing requirements.

Redundant Scheduler Support

Allows multiple scheduler instances with master election to ensure high availability, preventing single points of failure for scheduled jobs, as detailed in the redundancy section.

Cons

Polling-Induced Latency

Jobs are not executed exactly at the scheduled time; the scheduler polls at intervals (default 5 seconds), meaning there can be delays, as admitted in the delayed jobs section where it states jobs fire after the time has passed.

Setup and Configuration Complexity

Requires careful setup with Rake tasks, environment variables, and optional dynamic scheduling enablement, which can be error-prone for new users, as shown in the installation and configuration examples.

Ecosystem Lock-in

Tightly coupled with Resque and Ruby, making it unsuitable for projects using other job queues or polyglot architectures, and it adds dependencies on Redis and specific gem versions.

Missed Recurring Jobs

If the scheduler process is down, missed scheduled jobs are not recovered upon restart, unlike delayed jobs, which can lead to gaps in periodic tasks, as noted in the redundancy section.

Frequently Asked Questions

Quick Stats

Stars1,746
Forks476
Contributors0
Open Issues64
Last commit2 months ago
CreatedSince 2009

Tags

#cron-alternative#task-queue#redis#queue#job-scheduling#background-jobs#scheduler#delayed-jobs#ruby#resque

Built With

R
Ruby
r
rufus-scheduler
R
Redis

Included in

Ruby14.1k
Auto-fetched 9 hours ago

Related Projects

WheneverWhenever

Cron jobs in Ruby

Stars8,857
Forks715
Last commit2 months ago
Rufus-SchedulerRufus-Scheduler

scheduler for Ruby (at, in, cron and every jobs)

Stars2,446
Forks200
Last commit2 months ago
minicronminicron

🕰️ Monitor your cron jobs

Stars2,317
Forks149
Last commit5 years ago
sidekiq-cronsidekiq-cron

Scheduler / Cron for Sidekiq jobs

Stars1,943
Forks303
Last commit3 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub