Getting started

$ cd /my/rails/app $ wheneverize .

This will create an initial “config/schedule.rb” file you.

Example schedule.rb file

set :runner_path, '/var/www/apps/my_app' # Whenever will try to use your RAILS_ROOT if this isn't set
set :runner_environment, :production # Whenever defaults to production so only set this if you want to use a different environment.
set :cron_log, '/path/to/my/cronlog.log' # Where to log (this should NOT be your Rails log)
every 2.hours do
runner "MyModel.some_process" # runners are the script/runners you know and love
command "/usr/local/bin/my_great_command" # commands are any unix command
end
every 1.day, :at => '4:30 am' do # If not :at option is set these jobs will run at midnight
runner "DB.Backup", :cron_log => false # You can specify false for no logging or a string a different log file to override logging.
end
every :hour do # Many shortcuts available: :hour, :day, :month, :year, :reboot
runner "SomeModel.ladeda"
end
every :sunday do # Use any day of the week or :weekend, :weekday
runner "Task.do_something_great"
end

Cron output

$ cd /my/rails/app $ whenever

And you'll see your schedule.rb converted to cron sytax

Capistrano integration

Use the “whenever:write_cron” task to automatically write your crontab file
with each deploy.