Posts Tagged → crontab
January 30th, 2010
Hello whenever, goodbye manual crontab
Do you hate managing cron configurations manually? How about maintaining different cron configs for every Rails application you might possibly have?Wheneverize
Say hello to a ruby gem called whenever. It basically allows you to configure your cron jobs in ruby. An example to illustrate:
# assuming you have gemcutter in your list of sources
sudo gem install whenever
# in your rails application
wheneverize .
# now edit config/schedule.rb
vi config/schedule.rb
Now you’re presented with a very easy to understand Ruby DSL. No more reading cron manuals, it’s very straightforward and intuitive.
set :output, "/opt/myapp.com/current/log/cron_log.log"
every :reboot do
rake "solr:start"
end
every :friday, :at => '8am' do
rake "newsletters:deliver"
end
every 1.day, :at => '12am' do
rake "harvester:analyze"
end
Now this ruby file will not be enough to run itself. Fortunately, if you’re using capistrano, updating your cron config after every deploy is dead simple:
# in your config/deploy/production.rb maybe
namespace :deploy do
desc "Update the crontab file"
task :update_crontab, :roles => :db do
run "cd #{release_path} && whenever --update-crontab #{application}"
end
end
after "deploy:restart", "deploy:update_crontab"
Say goodbye to minding crontabs saved on different servers and say hello to a well maintained and managed configuration in your rails app.
This post by cyx is from pipe :to => /dev/null.
By cyx • Posted in ruby • No Comment
Recent Comments