A scheduling add-on for Sidekiq that runs jobs at specified times using cron notation or natural language.
Sidekiq-Cron is a Ruby gem that adds cron-based job scheduling to Sidekiq, allowing developers to schedule recurring background jobs using cron syntax or natural language. It solves the problem of automating periodic tasks—like sending nightly reports or cleaning up old data—within Sidekiq's ecosystem without relying on external cron daemons.
Ruby developers using Sidekiq for background job processing who need to schedule recurring tasks, such as sending periodic emails, generating reports, or performing regular database maintenance.
Developers choose Sidekiq-Cron because it integrates directly with Sidekiq, supports multi-process safety to avoid duplicate jobs, offers flexible scheduling with natural language, and requires minimal configuration compared to managing separate cron systems.
Scheduler / Cron for Sidekiq jobs
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports both standard cron syntax and natural language via Fugit, allowing expressions like 'every day at five' for intuitive configuration, as detailed in the scheduling options.
Uses Redis to coordinate across multiple Sidekiq processes, preventing duplicate job enqueuing and ensuring thread-safe operations, as explained in the thread-safe support section.
Jobs can be defined in YAML files (e.g., config/schedule.yml), enabling easy management and automatic loading in Rails applications, highlighted in the YAML schedule files feature.
Provides an optional web interface that integrates with Sidekiq's admin panel, allowing visualization and management of cron jobs without extra tools, as mentioned in the web UI integration.
Checks for jobs every 30 seconds by default, causing potential delays for sub-minute schedules and requiring configuration tuning for second-precision jobs, which can be a bottleneck for high-frequency tasks.
Heavily reliant on Redis for coordination and only compatible with Sidekiq, limiting flexibility and portability to other job processing systems, as it's designed exclusively for Sidekiq's ecosystem.
Changing namespaces can lead to duplicate jobs if not manually cleaned, and automatic namespace detection scales poorly, as admitted in the version 2.3 migration warnings about Redis load.