A Ruby gem that provides a clear syntax for writing and deploying cron jobs.
Whenever is a Ruby gem that provides a clear, Ruby-based syntax for defining and managing cron jobs. It solves the problem of writing and maintaining complex cron schedules by allowing developers to express scheduled tasks in a readable Ruby DSL, which is then converted to standard cron format for execution.
Ruby and Rails developers who need to schedule recurring tasks like database maintenance, data processing, or automated reports in their applications.
Developers choose Whenever because it integrates cron job management directly into their Ruby projects, offering a more maintainable and testable approach compared to editing raw crontab files, with built-in support for deployment tools like Capistrano.
Cron jobs in Ruby
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses natural time expressions like `every 3.hours` or `every :sunday, at: '12pm'`, making cron schedules easier to write and maintain compared to raw syntax.
Automatically updates crontab during deployments with role-based job distribution, streamlining multi-server setups as shown in the README's Capistrano sections.
Supports custom job definitions via `job_type` and built-in types for commands, Rake tasks, and Rails runners, allowing tailored execution environments.
Leverages the Chronic gem for intuitive date/time parsing, with configurable options like 24-hour clocks, though this adds a dependency.
Requires manual setup like setting `rvm_trust_rvmrcs_flag=1` to prevent cron jobs from hanging, adding complexity for RVM users as noted in the README.
Bound by cron's constraints—no built-in job queuing, retries, or advanced error handling—making it unsuitable for robust background processing systems.
Lacks integrated testing; relies on the separate `whenever-test` gem for schedule validation, which complicates the testing workflow.