A scheduling add-on for Sidekiq and Heroku Scheduler that enables jobs to run at any interval without a clock process.
Simple Scheduler is a Ruby gem that extends Heroku Scheduler and Sidekiq to schedule recurring background jobs at custom intervals. It solves the limitation of Heroku Scheduler, which only supports 10-minute, hourly, or daily intervals, by allowing jobs to run at any frequency while maintaining reliability during server downtime.
Rails developers using Heroku and Sidekiq who need flexible, reliable scheduling for recurring tasks like nightly reports, weekly payroll, or frequent data syncs.
It provides a simple, configuration-driven approach to job scheduling without requiring a separate clock process, ensuring jobs run even during outages by queuing them ahead, making it production-ready and maintenance-friendly.
An enhancement for Heroku Scheduler + Sidekiq for scheduling jobs at specific times.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows custom intervals like minutes, hours, or weeks via a simple YAML configuration, directly addressing Heroku Scheduler's limitation to only 10-minute, hourly, or daily runs.
Queues jobs into the future with a configurable queue_ahead setting (default 6 hours), ensuring execution even during server outages, as highlighted in its production readiness.
Optional expires_after setting prevents stale jobs from running after delays, with built-in hooks for handling expired tasks via exception notifications.
Changes to the YAML file are picked up on the next scheduler run without process restarts, simplifying maintenance and updates.
Heavily dependent on Heroku Scheduler for triggering jobs; using it outside Heroku requires manual scheduling of the rake task, adding complexity.
The :at parameter has constraints—e.g., jobs with intervals less than a day only run in specified hours—and lacks direct support for multiple weekdays or monthly dates, requiring guard clauses in job code.
Changes like renaming classes or altering run times may require running a separate rake task to reset the job queue, which can be disruptive in production environments.
Does not support chaining or dependencies between scheduled jobs, forcing developers to implement custom logic within job classes for complex workflows.